コマンドラインをよりよく学習しようとしていますが、これら2つのコマンドの違いは何でしょうか。

grep -c ^b example 

および

grep ^b example| cat –n 

コメント

  • UnixとLinux 。コマンドラインを学びたい場合は、さまざまな入力ファイルを使用して自分でコマンドを実行して実験するのが最善の方法です。質問には調査の努力が示されているはずなので、'関連するmanページをチェックして、さまざまなオプションの目的を確認することをお勧めします。manページは、'次の場合に最も読みやすくなりません。' Unixは初めてなので、理解に問題がある場合は、この質問を編集して詳細を確認できます。具体的(かつ便利)。質問方法を参照し、ツアーに気軽に参加してください。
  • (-1)でもない同じコマンド。無関係な2つのコマンド。
  • コマンドを実行してみましたか?

回答

そうですね。 、マニュアルによると、grep

FILE PATTERN を検索します。デフォルトでは、grepは一致する行を出力します。

および-cフラグ:

-c, --count 

通常の出力を抑制します。代わりに、入力ファイルごとに一致する行数を出力します。

したがって、grep -c ^b exampleを出力します。パターンに一致する行の数(数)、grep ^b exampleは行自体を出力します。

cat説明されている

ファイルを連結し、標準出力

および-nフラグの機能は次のとおりです。

-n, --number 

すべての出力行に番号を付ける

ファイル名、catはパイプから読み取るため、出力はgrepの出力になり、行番号が追加されます。したがって、grep ^b example| cat –nは、一致するすべての行を番号付きで出力します。


これは、grep -n ^b exampleとは異なります。grepはliを追加します試合数。 grepは元のファイルの行番号を認識していますが、catgrepそしてそれに応じて行に番号を付けます。

したがって、入力ファイルが与えられた場合

$ cat example bar foo basf 

次のようになります。

$ grep -c ^b example 2 $ grep ^b example |cat -n 1 bar 2 basf $ grep -n ^b example 1:bar 3:basf 

回答

OKコマンド:

  1. grep -c ^b example:文字bで始まる行の一致する行の数を出力します。

  2. grep ^b example | cat -n:grepコマンドの結果をcatコマンドに渡し、行番号とともにリストします。 -nは、catに行番号とともにそれらをリストするように強制します。

例:

example.txtとコンテンツ:

media sound3 media sound1 media sound2 find sound -type f -name sound[0-9] -printf "media %f\n" > file.txt find sound -type f -name sound[0-9] -exec bash -c "echo media bash >> file.txt" {} \; find sound -type f -name sound[0-9] -exec bash -c "f="{}"; echo media $( basename ${f}) >> file.txt" \; 

(1)の結果:

3 

(2)の結果:

1 media sound3 2 media sound1 3 media sound2 

コメント

  • はいあなたの権利!

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です