在命令中添加输出

时间:2018-08-28 09:07:01

标签: bash awk sed

我是几周前才开始编写脚本的,或者至少正在尝试...

bash-4.3# /usr/openv/netbackup/bin/admincmd/bperror -backstat -hoursago 72 \
          | grep xxx1                                                      \
          | awk '{ print $1 "\t" $19 "\t" $12 "\t" $14 "\t" $16 }'  >> test
bash-4.3# cat test
1535229470      0       xxx1     policy1        sched1
1535314239      0       xxx1     policy1        sched1
1535400749      0       xxx1     policy1        sched1

现在我想将第一个条目(时间戳)转换为可读的日期

date=$(awk 'NR == 1 {print $1}' test); bpdbm -ctime $date |awk '{ print $3 " " $4 " " $5 " " $6 " " $8 }'
Sat Aug 25 22:37:50 2018

现在如何用此输出替换每行的第一个条目或更改第一个命令?

非常感谢!

1 个答案:

答案 0 :(得分:0)

使用GNU awk:

angular-fullscreen

这将使用功能awk '$1~/[0-9]+/{$1=strftime(PROCINFO["strftime"],$1)}1' file 将行的第一字段中的时间戳替换为关联的可读日期。

日期格式是awk手册页中提到的默认格式strftime