11

私は bash シェルで作業しており、文字列が最初に出現した行のみを印刷しようとしています。たとえば、文字列 ' 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 に答える