UNIX:使用egrep或sed查找第一次出现字符串的行?

时间:2012-05-20 18:51:52

标签: bash unix sed

我正在使用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”出现的第一行?如果它只是一个命令或命令管道,那就太好了。

非常感谢任何见解。

5 个答案:

答案 0 :(得分:11)

使用此:

grep -m1 auir myfile.txt

答案 1 :(得分:5)

sed命令

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

解决您的问题。

答案 2 :(得分:5)

这可能对您有用:

sed '/auir/!d;q' file

sed -n '/auir/{p;q}' file

答案 3 :(得分:2)

sed -n -e'4s / auir / auir / p'file

答案 4 :(得分:1)

或者它可以像这个一样简单

grep auir myFile.txt|head -1