一連のファイルに対して一連のファイルを使用して、ファイル内の行数を数え、対応する入力の一部で出力ファイルに出力するLinuxコマンドファイルを出力行の一部として出力します。だから、例えば私たちは、ファイルLOG_Yellow
を見ていたし、それが28行を持っていた、出力ファイルには、このようなラインを持っているでしょう(Yellow
と28
はタブ区切りです):入力ファイルの名前と行数の一部を出力するLinuxコマンド
Yellow 28
一連のファイルに対して一連のファイルを使用して、ファイル内の行数を数え、対応する入力の一部で出力ファイルに出力するLinuxコマンドファイルを出力行の一部として出力します。だから、例えば私たちは、ファイルLOG_Yellow
を見ていたし、それが28行を持っていた、出力ファイルには、このようなラインを持っているでしょう(Yellow
と28
はタブ区切りです):入力ファイルの名前と行数の一部を出力するLinuxコマンド
Yellow 28
wc -l [filenames] | grep -v " total$" | sed s/[prefix]//
wc -lはほぼ正しい形式で出力を生成します。 grep -vは、wcが生成する "total"行を削除します。 sedはあなたがファイル名から欲しがらないジャンクを取り除きます。あなたのためのスクリプトを書くのショート
wc -l * | head --lines=-1 > output.txt
は、このような出力を生成します。
linecount1 filename1
linecount2 filename2
私はあなたのニーズに合わせてここから作業できるはずです。
編集:私はあなたの名前抽出のルールを見ていないので、私はまだ完全な名前を残します。しかし、他の回答と違って、私はではなくhead
を使いたいだけでなく、少し速くするだけでなく、total*
という名前のファイルをフィルタリングすることも避けています。
EDIT2(コメントを読んだ):以下は全体の多くを行います。
wc -l * | head --lines=-1 | sed s/LOG_// | awk '{print $2 "\t" $1}' > output.txt
wc -l *| grep -v " total"
したい場合は、それを逆にすることができます
28イエロー
を送信(awk、ファイル名にスペースがない場合) wc -l *| egrep -v " total$" | sed s/[prefix]// | awk '{print $2 " " $1}'
Sboddの 'sed'呼び出しを追加してください。これが答えです。 – Welbog
「は」
すべてのファイルはLOG_で始まっていますか? –
はい。私はawkとwc -lの組み合わせを使うのが一番良いと思います。 – biznez
私は、これがなぜスーパーユーザー(またはサーバーに関するすべてのLinuxに関する質問を考慮した場合はserverfault)に属しているとして閉じられていないのか、迷っています。 – rmeador