GNU/Linux >> Linux の 問題 >  >> Linux

Grepのみを使用して最初のオカレンスのみを検索しますか?

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

承認された回答:

デフォルトでは、grep を印刷します パターンに一致するため、パターンが1行に複数回出現する場合は、grep その行全体を印刷します。

フラグを追加する-m 7 grepに通知します パターンが表示される最初の7行のみを印刷します。

したがって、これはあなたが望むことをするはずです(私はそれをテストしていません):

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

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


Linux
  1. Linuxのfindコマンドの使用–例を使用した使用法

  2. 最初の一致後に検索コマンドを停止する方法は?

  3. カスタム正規表現区切り文字を使用してパターンを含む行番号を見つけますか?

  1. パターンに一致する連続する行のすべてのシーケンスの最初の行だけを保持しますか?

  2. パターンに一致する特定のファイルを検索する方法は?

  3. Linux で GREP を使用して特定のテキストを検索する方法

  1. Sed、Awk、またはGrepを使用したマルチラインパターンマッチ?

  2. Grep – GrepパターンのブラケットがPs結果からGrepプロセスを削除するのはなぜですか?

  3. 巨大なログ ファイル (>14 GB) で最後の x GB のみを grep しますか?