1

假设有一个包含一些文本的文件,并说我们正在该文本中寻找某个字符串。在该字符串的第一个实例之前,您将如何打印该文件的内容?

4

4 回答 4

2
sed '/\(pattern\).*/{s//\1/; q;}'
于 2013-09-27T23:17:30.230 回答
1

使用 sedq命令:

sed '/pattern/q' file

这将打印文件直到pattern找到,然后它将退出其余的处理。

于 2013-09-27T22:30:04.693 回答
0

有很多方法可以做到这一点。例如,您可以使用 grep 的-n选项使其输出行号,提取第一个行号并使用它来指示head从文件中显示给定数量的行:

head -n $(grep -n somestring file | cut -d: -f1 | head -n 1) file
于 2013-09-27T22:30:19.997 回答
0

使用awk

awk '!f; /pattern/ {f=1}' file

打印行 if f=0, if patternfound setf=1

于 2013-09-28T06:06:08.233 回答