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

时间:2011-05-11 17:19:25

标签: bash shell unix grep

昨天出现了一种情况,有人需要我将文件的尾端分开,指定为特定字符串之后的所有内容(为了参数,“FOO”)。我需要立即这样做,所以选择了我知道可以工作并且无视The Right Way或The Best Way,并选择以下内容:

grep -n FOO FILE.TXT | cut -f1 -d":" | xargs -I{} tail -n +{} FILE.TXT > NEWFILE.TXT

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

3 个答案:

答案 0 :(得分:15)

sed -n '/re/,$p' file

直接发生在我身上。

答案 1 :(得分:10)

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

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

grep --after-context=999999 -n FOO FILE.TXT > NEWFILE.TXT

答案 2 :(得分:1)

与geekosaur上面的答案类似,但此选项排除了包括匹配的行而不包括:

sed '1,/regex/d' myfile

在尝试上述选项后找到此here