2017-09-12 4 views
1

特定の文字列と可能な場合は出現回数を含む長い形式(ls -l)のファイルリストを日付と時刻を含めて表示したい。文字列を含む長い形式のファイルのリストが必要

私が達成しているほとんどが出現数とファイルのリスト(名前だけを)です

filenamenumber of occurrences

しかし、私はそれを改善することができないようなものを示して

grep -c 'string' * | grep -v :0 

ファイルの日付と時刻も表示します。それは単純なものでなければなりませんが、私は少し初心者です。

+1

がSOにようこそ、HTTPS([掲載方法] [ツアー](https://stackoverflow.com/tour)を取り、読んでください。 //stackoverflow.com/help/how-to-ask)。 [提供されたマークダウンオプション](https:// stackoverflow)を使用して、コードを[最小、完全、および検証可能な例](https://stackoverflow.com/help/mcve)として提供し、質問を適切に書式設定することを忘れないでください。 com/editing-help)を参照してください。 –

答えて

1

私は-sを使用して、フォルダの警告を無視しています。 ending in :0の正規表現は':0$'です。 awkは、見つかったファイル名だけでls -lを呼び出します。| tr '\n' ' 'は、lsコマンドの改行をスペースで置き換えます。私たちは、各行の終わりに出現回数を出力するので、情報を失うことはありません。最後のawkは、必要な列だけを印刷することです。ここで

grep -c 'form-group' * -s | grep -v ':0$' | awk -F ':' '{ printf system("ls -l \"" $2 "\" | tr \"\n\" \" \""); print " " $3 }' | awk -F ' ' '{ print $6 " " $7 " " $8 " " $9 " : " $11 }' 

は、いくつかのサンプル出力です:

Sep 1 13:47 xxx.blade.php : 12 
Sep 1 13:47 xxx.blade.php : 5 
Sep 1 13:47 xxx.blade.php : 6 
Sep 11 17:25 xxx.blade.php : 4 
Sep 4 15:03 xxx.blade.php : 6 
+1

何千もありがとう、Valdrinit!私は最初のawkで$ 2を$ 1と$ 3に変更して$ 2にしなければならず、それは魅力のように機能します!すばらしいです! – realpikolo

+0

私はあなたを助けたことができて非常にうれしいです! – Valdrinit

関連する問題