我有一个文件列表:
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
命令之后开始的,有什么问题吗?
如果要合并所有文件,则需要使用
find . -name "youyou.lo*"
否则你会跳过第一个youyou.log
,这就是为什么你得到了碎鸡蛋。
在第一个命令中,输出将转到youyou_complete。日志。但在第二个命令中,您的输入取自youyou_complete。中新社.
更改其中一个以使它们相同,您就可以开始了。