我有一个文件,第 n 行有一个“KEYWORD”。如何打印从第 n+1 行开始到结束的所有行?
例如,在这里我只想 pro=int 行 DDD 和 EEE
AAA
BBB
CCC
KEYWORD
DDD
EEE
答案1
您可以通过以下方式执行此操作sed
:
sed '1,/^KEYWORD$/d'
这将删除(省略)从流开头到“KEYWORD”(含)的所有行。
答案2
另一种选择可能是grep
与标志结合使用-A
,例如
grep -A10000 KEYWORD file
其中10000
只是一个大数字,表示直到文件末尾的行数,这对于您的实际日常使用来说应该足够了。
否则,您可以使用文件中的行数作为参数,如下所示
grep -A$(wc -l file | cut -d' ' -f1) KEYWORD file
但这很可能是矫枉过正(而且并不比给定的替代方案更容易记住sed
)
答案3
使用 sed,从 KEYWORD 匹配打印到文件末尾,然后使用 tail 删除 KEYWORD 行。
sed -n '/KEYWORD/,$p' file | tail -1