grep --before-context 5 在比赛前显示 5 行。
我想在比赛前展示一切。
这样做grep --before-context 99999999会工作,但它不是很......专业。
如何显示匹配的所有文件?
Mik*_*kel 130
Sed更适合这一点。
做就是了:
sed '/PATTERN/q' FILE
Run Code Online (Sandbox Code Playgroud)
它是这样工作的:
对于每一行,我们看看它是否匹配/PATTERN:
这是最有效的解决方案,因为它一看到PATTERN就退出。如果没有q,sed 将继续读取文件的其余部分,并且不做任何处理。对于大文件,它可以有所作为。
这个技巧也可以用来模拟head:
sed 10q FILE
Run Code Online (Sandbox Code Playgroud)
gle*_*man 51
打印到并包括匹配项:
awk '{print} /pattern/ {exit}' filename
sed '/pattern/q' filename
Run Code Online (Sandbox Code Playgroud)
最多打印但不包括匹配项:
awk '/pattern/ {exit} {print}' filename
sed '/pattern/Q' filename
Run Code Online (Sandbox Code Playgroud)
for*_*sck 41
sed 可以替代 grep 的大部分功能。
sed -n '1,/<pattern>/ p' <file>
Run Code Online (Sandbox Code Playgroud)
这意味着从第一行打印直到模式匹配。
几个范围示例
sed -n '/<pattern>/,$ p' <file> # from pattern to end of file
sed -n '/<pattern1>/,/<pattern2>/ p' <file> # from pattern1 to pattern2
Run Code Online (Sandbox Code Playgroud)