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

grep から返される結果の数を制限するにはどうすればよいですか?

別のオプションは head を使用するだけです:

grep ...parameters... yourfile | head

これには、ファイル全体を検索する必要はありません。一致する最初の 10 行が見つかった時点で停止します。このアプローチのもう 1 つの利点は、-o オプションを指定して grep を使用している場合でも、10 行以下しか返されないことです。

たとえば、ファイルに次の行が含まれている場合:

112233
223344
123123

次に、これが出力の違いです:

$ grep -o '1.' yourfile | head -n2
11
12

$ grep -m2 -o '1.'
11
12
12

head の使用 -m2 は 3 を返しますが、必要に応じて 2 つの結果のみを返します。


-m オプションはおそらくあなたが探しているものです:

grep -m 10 PATTERN [FILE]

man grep から :

-m NUM, --max-count=NUM
        Stop reading a file after NUM matching lines.  If the  input  is
        standard  input  from a regular file, and NUM matching lines are
        output, grep ensures that the standard input  is  positioned  to
        just  after the last matching line before exiting, regardless of
        the presence of trailing context lines.  This enables a  calling
        process  to resume a search.

注:指定した数の一致が見つかると、grep はファイルの読み取りを停止します!


Linux
  1. Linuxgrepコマンドの使用方法

  2. ターミナルで利用可能な垂直線の数を見つける方法は?

  3. Grepからの出力を抑制して、終了ステータスのみを返すようにするにはどうすればよいですか?

  1. Grep一致後のファイルの行数をカウントする方法は?

  2. ファイルの行数だけを取得する方法

  3. Linux で「find」の結果を mv にパイプする方法

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

  2. grep 出力から一意の結果を除外するにはどうすればよいですか?

  3. find コマンドの結果に基づいてファイルを chmod する方法