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

tf.*_*.rz 8 unix bash sed

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

123
asdf
4wirajw
forauir somethingelse
starcraft
mylifeforauir
auir
something else
tf.rzauir
Run Code Online (Sandbox Code Playgroud)

我想输出" forauir somethingelse"

到目前为止,我使用命令

sed -n '/auir/p' myfile.txt
Run Code Online (Sandbox Code Playgroud)

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

非常感谢任何见解.

the*_*aul 12

用这个:

grep -m1 auir myfile.txt
Run Code Online (Sandbox Code Playgroud)


bee*_*jay 6

这个sed命令

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

解决你的问题.

  • 您也可以使用`sed`脚本,在打印第一次出现后退出; 喜欢`sed'/ auir /!d; q'` (10认同)

pot*_*ong 5

这可能对你有用:

sed '/auir/!d;q' file
Run Code Online (Sandbox Code Playgroud)

要么

sed -n '/auir/{p;q}' file
Run Code Online (Sandbox Code Playgroud)