多くの単語を含むファイルがあり、パターン「xyz」の最初の単語のみを検索したいとします。同じ行にこのパターンの単語が複数ある場合はどうすればよいですか?
-m
一致する最初の行のすべての単語を返します。 grepコマンドだけが必要です。
承認された回答:
デフォルトでは、grep
行を印刷します パターンに一致するため、パターンが1行に複数回出現する場合は、grep
その行全体を印刷します。
フラグを追加する-m 7
grep
に通知します パターンが表示される最初の7行のみを印刷します。
したがって、これはあなたが望むことをするはずです(私はそれをテストしていません):
grep -o -m 1 xyz myfile | head -1
編集:@Kusalanandaが指摘しているように、-m
は厳密には必要ありません。 フラグですが、それを使用することはgrep
を意味します ファイル全体を解析する必要はなく、特にmyfile
の場合、結果をより速く出力します。 大きなファイルです。