對於一堆文件,您將連續使用哪些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爲你生成的「總」行; sed從文件名中去除你不想要的垃圾。
wc -l * | head --lines=-1 > output.txt
產生的輸出是這樣的:
linecount1 filename1
linecount2 filename2
我認爲你應該能夠從這裏工作以滿足你的需求。
編輯:由於我沒有看到你的名字提取規則,我仍然留下全名。然而,與其他答案不同,我傾向於使用head
而不是grep
,它不僅應該稍微快一點,而且還可以避免過濾掉名爲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 2009-09-02 17:24:13
短寫劇本給你的:
是否所有文件都以LOG_開頭? – 2009-09-02 17:21:14
是的。我認爲使用awk和wc -l的組合應該是最好的。 – biznez 2009-09-02 17:24:03
我爲什麼沒有關閉超級用戶(或者serverfault,如果你認爲所有的linux問題都與服務器有關)都不知所措。 – rmeador 2009-09-02 18:01:07