2017-09-12 113 views
1

我想要包含日期和時間的長格式文件列表(ls -l),其中包含特定的字符串,並且如果可能的話包含出現次數。我需要包含字符串的長格式文件列表

我已經實現了最是出現次數文件列表(只是名稱):

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

這說明是這樣的: filenamenumber of occurrences

但我不能把它提高到還顯示文件的日期和時間。它必須是簡單的,但我有點新手。

+1

歡迎的話,請取[旅遊](https://stackoverflow.com/tour)和閱讀[如何提問](HTTPS: //stackoverflow.com/help/how-to-ask)。不要忘記提供一些代碼([Minimal,Complete,and Verifiable example])(https://stackoverflow.com/help/mcve),並使用[提供的降價選項](https:// stackoverflow。 COM /編輯 - 幫助)。 –

回答

1

我已經使用-s來忽略文件夾警告。 ':0$'ending in :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