在grep'd字符串后获取文件中的所有内容

geo*_*try 6 unix bash shell grep

昨天出现了一种情况,有人需要我将文件的尾端分开,指定为特定字符串之后的所有内容(为了参数,"FOO").我需要立即这样做,所以选择了我知道会工作并忽略了正确的方式或最好的方式,并采取以下措施:

grep -n FOO FILE.TXT | cut -f1 -d":" | xargs -I{} tail -n +{} FILE.TXT > NEWFILE.TXT
Run Code Online (Sandbox Code Playgroud)

让我烦恼的是使用xargs作为单例值.我认为我可以在这方面展示我的Google-Fu,但有兴趣看看SO-land中的人们为这种情况想出了什么样的东西

gee*_*aur 15

sed -n '/re/,$p' file
Run Code Online (Sandbox Code Playgroud)

就在我身上.

  • 适合工作的正确工具.`sed`就是你想要的.Mod +1. (2认同)

Phi*_*eet 10

您是否考虑过使用grep的'--after-context'参数?

有点像,这应该可以解决问题,只需要足够大的数字来结束文件的结尾:

grep --after-context=999999 -n FOO FILE.TXT > NEWFILE.TXT
Run Code Online (Sandbox Code Playgroud)

  • 如果999999可能不够,则`--after-context = $(wc -l <​​FILE.TXT)`将 (7认同)