Toothrot Asked: 2018-07-26 11:08:27 +0800 CST2018-07-26 11:08:27 +0800 CST 2018-07-26 11:08:27 +0800 CST 在图案上方打印两行 772 如何打印文件的内容减去所有内容,包括第一次出现模式上方的行及其下方? 假设模式是第 15 行的“^Previous”;然后我想打印第 1--13 行。 text-processing 2 个回答 Voted don_crissti 2018-07-26T13:09:43+08:002018-07-26T13:09:43+08:00 sed可以自己完成这一切: sed -n '$!N;/.*PATTERN.*/q;P;D' infile 很简单:开启静音模式,使用滑动窗口(通过N和D,使模式空间中始终有两行),q如果遇到PATTERN其他情况P,则将模式空间中的第一行退出并重新循环。 gnu sed它甚至更短,因为它可以Q在没有自动打印的情况下使用,因此您可以跳过静音模式: sed '$!N;/.*PATTERN.*/Q;P;D' infile Best Answer steeldriver 2018-07-26T11:13:19+08:002018-07-26T11:13:19+08:00 接吻怎么样 sed '1,/^Previous/!d' file | head -n -2
sed
可以自己完成这一切:很简单:开启静音模式,使用滑动窗口(通过
N
和D
,使模式空间中始终有两行),q
如果遇到PATTERN
其他情况P
,则将模式空间中的第一行退出并重新循环。gnu sed
它甚至更短,因为它可以Q
在没有自动打印的情况下使用,因此您可以跳过静音模式:接吻怎么样