对于一堆文件,您将连续使用哪些Linux命令来计算文件中的行数并输出到输出文件,并将相应输入文件的一部分作为输出行的一部分。例如,我们查看文件LOG_Yellow
并且它有28行,输出文件将有这样的行(Yellow
和28
是制表符分隔的):
Yellow 28
答案 0 :(得分:4)
wc -l [filenames] | grep -v " total$" | sed s/[prefix]//
wc -l以几乎正确的格式生成输出; grep -v删除wc为你生成的“total”行; sed从文件名中删除你不想要的垃圾。
答案 1 :(得分:2)
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
答案 2 :(得分:2)
wc -l *| grep -v " total"
发送
28黄色
如果需要,可以反转它(如果文件名中没有空格,则为awk)
wc -l *| egrep -v " total$" | sed s/[prefix]//
| awk '{print $2 " " $1}'
答案 3 :(得分:1)
没有为你编写脚本: