grepを使って最初の項目だけを見つけます。

grepを使って最初の項目だけを見つけます。

単語の多いファイルがあり、「xyz」パターンを持つ最初の単語を探したいとしましょう。同じ行にこのパターンを含む単語が複数ある場合はどうなりますか? -m一致する最初の行のすべての単語を返します。 grepコマンドだけが必要です。

答え1

デフォルトではgrep印刷ワイヤーパターンと一致するため、パターンが1行に1回以上表示されると、行全体がgrep印刷されます。

このフラグを追加すると、モード発生の最初の7行だけを印刷するように-m 7指示されます。grep

したがって、必要に応じて動作する必要があります(まだテストしていません)。

grep -o -m 1 xyz myfile | head -1

-m編集:@Kusalanandaが指摘したように、このフラグは必ずしも必要ではありませんが、それを使用するとファイル全体を解析する必要はなく、特に大容量ファイルの grep場合は結果がより速く出力されます。myfile

答え2

あなたの質問に対する答えはgrepのマニュアルページにあります。

grep -m1 'searchstring' file_name

オプション-m<number>が重要です。-m1最初の一致、-m2最初の2つの一致などが表示されます。

関連情報