誰かが次のコマンドの構文を説明できますか?彼らが何をしているのかはわかりますが、構文を理解するのは難しいです。
find / -type f -exec grep -H 'text-to-find-here' {} \;
cat access.log | cut -d '"' -f3 | cut -d ' ' -f2 | sort | uniq -c | sort -r
sudo cat error_log.20150205 | grep mpmstat | grep -v "," | cut -d: -f4- | grep -v ":" | sed -e's/rdy//g' | sed -e 's/bsy\|wr\|ka\|log\|dns\|cls\|rd/,/g
答え1
find
/
→ ルートディレクトリから検索
-type f
→ ファイルのみ選択( f
) → コマンドを実行して見つかった
-exec ....{} \;
(ファイル) 名を 1 つずつ{}
挿入grep -H 'test-to-find
→ 見つかったファイルごとにこの grep を実行find
cat access.log |
→ファイルをstdoutに出力し、次のコマンドでパイプ
cut -d '"' -f3 |
→行を分割し、"
フィールド3のみを出力し、次のコマンドでパイプ
cut -d ' ' -f2 |
→スペースに基づいてフィールド3を切り取り、2番目のフィールドを取得し、次のフィールドにパイプ
sort | uniq | sort -r
→出力を並べ替えて削除する重複、逆順に並べ替え( -r
) (最後のコマンドは、一部のバージョンでは1つのコマンドで実行でき、
最初のコマンドは重複しているため書くことができます)sort
sort -ur
cat
< access.log cut -d '"' | ....
sudo cat error_log.20150205 |
→ root権限(ファイルアクセス権?)でcatを実行
grep mpmstat |
→単語のある行のみを選択→コンマ付きの行はmpmstat
grep -v "," |
選択解除()→区切り文字「:」に基づいて複数のフィールドに分割し、4番目のフィールド以上を取得します。 → ':'で行を抑制します(前の区切り文字である可能性が低い)→各行の並べ替え()→さまざまな選択肢をカンマに置き換えます(wr \ | `)-v
cut -d: -f4- |
grep -v ":" |
sed -e's/rdy//g' |
s
rdy
g
sed -e 's/bsy\|wr\|ka\|log\|dns\|cls\|rd/,/g
bsy,
, etc, separated by