哪个简单快速的UNIX命令可以打印从最后一次出现的模式到文件末尾的所有行?
sed -n '/pattern/,$p' file
Run Code Online (Sandbox Code Playgroud)
此sed命令从第一次出现开始打印.
这可能适合你(GNU sed):
sed 'H;/pattern/h;$!d;x;//!d' file
Run Code Online (Sandbox Code Playgroud)
存储最后一个模式,并在保留空间中跟随行,并在文件结尾处打印出来.
或者在awk中使用相同的方法:
awk '{x=x ORS $0};/pattern/{x=$0};END{if(x ~ //)print x}' file
Run Code Online (Sandbox Code Playgroud)
然而在我的机器上jaypals方式与sed似乎是最快的:
tac file | sed '/pattern/q' | tac
Run Code Online (Sandbox Code Playgroud)
反转文件,打印直到第一个模式,退出并反转文件.
tac file | awk '/pattern/{print;exit}1' | tac
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
409 次 |
| 最近记录: |