我有一个文件列表:
youyou.log
youyou.log.1.gz
youyou.log.2.gz
首先,有合并的内容:
find . -name "youyou.log.*.gz" -print0 | sort -z -rn -t. -k4 | xargs -0 zcat | cat - youyou.log > youyou_complete.log
然后选择所需的内容
awk '{OFS=","}{print $1, $2, $14, $15, $16 }' youyou_complete.csv > youyou_processed.csv
youyou_processed.csv
很干净,但是我滚动并到达youyou.log
部分,到处都有换行符。
它为什么会发生?
****更新
我注意到awk
命令后所有混乱都开始了,这有什么问题吗?
答案 0 :(得分:0)
如果要合并所有 个文件,则需要使用
find . -name "youyou.lo*"
否则,您将跳过第一个youyou.log
,这就是为什么您将鸡蛋打碎了的原因。
答案 1 :(得分:0)
在第一个命令中,您的输出将发送到youyou_complete。日志。 但是在第二条命令中,您的输入来自youyou_complete。 csv 。
更改其中之一以使它们相同,那么您就很好了。