コマンドラインをよりよく学習しようとしていますが、これら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
は元のファイルの行番号を認識していますが、cat
はgrep
そしてそれに応じて行に番号を付けます。
したがって、入力ファイルが与えられた場合
$ 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コマンド:
-
grep -c ^b example
:文字b
で始まる行の一致する行の数を出力します。 -
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
コメント
- はいあなたの権利!