11

我在 bash shell 中工作,我试图只打印字符串第一次出现的行。例如,对于字符串 ' auir',如果我有文件 myfile.txt 并且它包含:

123
asdf
4wirajw
forauir somethingelse
starcraft
mylifeforauir
auir
something else
tf.rzauir

我想输出“ forauir somethingelse

到目前为止,我使用命令

sed -n '/auir/p' myfile.txt

这给了我这个字符串的所有出现。我怎样才能只得到 ' auir' 出现的第一行?如果它只是一个命令或命令管道,那就太好了。

非常感谢任何见解。

4

5 回答 5

15

用这个:

grep -m1 auir myfile.txt
于 2012-05-20T18:56:22.437 回答
9

这个sed命令

sed -n '/auir/p' myfile.txt | head -1

解决你的问题。

于 2012-05-20T18:54:24.373 回答
5

这可能对您有用:

sed '/auir/!d;q' file

或者

sed -n '/auir/{p;q}' file
于 2012-05-20T19:26:26.407 回答
2

sed -n -e '4s/auir/auir/p' 文件

于 2012-10-01T10:01:50.477 回答
1

或者它可以像这样简单

grep auir myFile.txt|head -1
于 2012-05-20T22:10:11.120 回答