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

Bash UNIX:使用egrep或sed查找字符串第一次出现的行?,bash,unix,sed,Bash,Unix,Sed,我在bashshell中工作,我试图只打印字符串第一次出现的行。例如,对于字符串“auir”,如果我有文件myfile.txt,并且它包含: 123 asdf 4wirajw forauir somethingelse starcraft mylifeforauir auir something else tf.rzauir 我想输出“以获取UIR somethingelse” 到目前为止,我使用这个命令 sed -n '/auir/p' myfile.txt 这给了我所有出现的字符串。我如

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

123
asdf
4wirajw
forauir somethingelse
starcraft
mylifeforauir
auir
something else
tf.rzauir
我想输出“
以获取UIR somethingelse

到目前为止,我使用这个命令

sed -n '/auir/p' myfile.txt
这给了我所有出现的字符串。我如何才能只获取“
auir
”出现在的第一行?如果它只是一个命令或命令管道,那就太好了


非常感谢您的任何见解。

sed
命令

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

解决您的问题。

使用以下方法:

grep -m1 auir myfile.txt

这可能适合您:

sed '/auir/!d;q' file


也可以这么简单

grep auir myFile.txt|head -1

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

您最好使用
sed
脚本,该脚本在打印第一次出现后退出;像
sed'/auir/!Dq'
非常感谢您的快速响应!工作!:)@哦,太有想象力了,我对贝壳的东西还不熟悉,我要试试。谢谢@tripleee的答案比我的答案聪明得多。
:(
是的,grep很好,但是beerbjay比你快了2分钟,我得给他点分数。不过知道多种方法来做同样的事情总是很好。谢谢你的回复!重定向是不必要的。比如星际争霸。太棒了。你肯定会找“爱你”吗?
grep auir myFile.txt|head -1