2016-04-28 12 views
0

このコマンドで何が起こったのか詳しく説明できますか?grepとwcで特殊文字を使用する方法を理解しようとしています

grep -nw '^root' /etc/passwd 

^"の使用は何ですか?私に例を与えて、私が聞いているすべての細かいことは、それが行の始まりであるということです。私はこれらの特殊文字の意味を理解していません。

は、どのように私は私のシステム上で実行されているroot以外のプロセスの数を見つけるためにトイレグレップ^を使用して行くのでしょうか?

+0

'grep'のマニュアルページを見ましたか?それはそこに説明されています。それを理解したら、 'wc'のマニュアルページを見てください。それからあなたはおそらくあなた自身の最後の質問に答えることができます。 – lurker

+1

引用符の中にあるこれらの神秘的なものは '正規表現'です。情報は、例えば、ここに:http://stackoverflow.com/questions/22937618/reference-what-does-this-regex-mean/22944075#22944075 –

+0

疑問がある場合は、マニュアルページを確認してください。それはそのために作られた – hek2mgl

答えて

0
grep -nw '^root' /etc/passwd 

それは、/ etc/passwdファイルのライン・バイ・ラインを読み取り、^=が-w=完全な単語「ルート」で始まるすべてのこれらの行を除外します。そのため、たとえば

root:x:0:0:root:/root:/bin/bash 

行は、システム上のすべてのプロセスを表示するには、ps auxを使用することができます。このような行が表示されます

root 22866 0.0 [...] 0:00 [kworker/1:0] 

ご覧のとおり、行はユーザー名で始まります。 ps auxの出力をgrepでパイプした場合は、上記と同じRegExを使用して、でない行をすべて「out」で除外できます。は「root」で始まります。

使用-vgrep -vw '^root'を行うすべての行ないを見つけたように、パターンマッチングを反転させるには、完全な単語「ルート」で始まります。

ps aux | grep -vw '^root' | wc -l 

最後に、wc -lは受信する回線数をカウントします。それはps auxから "root"で始まらないすべての行の数です。

関連する問題