我有以下命令行:
grep -e "[0-9] ERROR" /home/aa/lab/utb/cic/nova-all.log | awk '{ print $6 }' | awk -F'-' '{print $3""$2""$1}' | cut -c 1-4,7-8 > part1date.txt
grep -e "[0-9] ERROR" /home/aa/lab/utb/cic/nova-all.log | awk '{ print $3" "$4" "$5" "$9 }' > part1rest.txt
grep -e "[0-9] ERROR" /home/aa/lab/utb/cic/nova-all.log | awk '{ s = ""; for (i = 15; i <= NF; i++) s = s $i " "; print s}' > part1end.txt
paste -d \ part1date.txt part1rest.txt part1end.txt > temp.txt
rm part1*
cat temp.txt
前3行将将其输出保存在文本文件中。然后,我将这些文本的列合并到一个文件中,以显示输出。有人能帮助我在一行中使用相同的命令而不把它们保存在文本文件中吗?
此命令用于更改标准输出:
sep 10 11:13:55 node-20 nova-scheduler 2014-10-12 10:36:55.675 3817 ERROR nova.scheduler....
采用这种格式:
ddmmyy hh:mm:ss node-xx PROCESS LOGLEVEL MESSAGE
这意味着更改列的位置并更改日期的格式。
发布于 2015-12-01 12:27:11
awk '/[0-9] ERROR/{gsub("-","",$6);$2=$6;$6=$9;for(i=0;++i<=NF;)$i=i<6?$(i+1):$(i+9);NF-=9;print}' file
https://stackoverflow.com/questions/34016860
复制相似问题