我有一个大文本文件,中间包含一个唯一的字符串。我想要做的是使用grep打印字符串之后的所有内容。
cat textfile | grep "target_string"
This highlights target_string but prints the whole file
cat textfile | grep -o "target_string"
This prints only target_string
cat textfile | grep -o "target_string*"
This prints only target_string
如何在target_string之后打印所有内容?之前什么也没有?
答案 0 :(得分:28)
使用GNU grep
,尝试-B0 -A999999999
或类似。更好的选择可能是awk
:
awk '/target_string/ {seen = 1}
seen {print}'
如果(您的问题规格略显不清楚),您也不需要打印匹配的行,sed
甚至更短:
sed '1,/target_string/d'
答案 1 :(得分:23)
答案 2 :(得分:20)
你忘记了'。':
cat textfile | grep -o "target_string.*"
答案 3 :(得分:2)
这将在每场比赛后打印所有内容,仅在同一行上打印:
perl -lne 'print $1 if /target_string(.*)/' textfile
这样做也是如此,除了它还会打印所有后续行:
perl -lne 'if ($found){print} else{if (/target_string(.*)/){print $1; $found++}}' textfile