kingkingdm 发表于 2019-02-13 17:56

针对某一列调用系统命令

文本示例: 第一列是时间戳,第二列是正常时间
1549905362 [12/Feb/2019:02:38:05
1549903117 [12/Feb/2019:02:38:09
1549902392 [12/Feb/2019:02:38:10


希望对第一列进行转换成普通时间如下:
Tue Feb 12 01:16:02 CST 2019 [12/Feb/2019:02:38:05
Tue Feb 12 00:38:37 CST 2019 [12/Feb/2019:02:38:09
Tue Feb 12 00:26:32 CST 2019 [12/Feb/2019:02:38:10


自己用cmd 一直会换行。 求教实现方式:

# head -n 3 /tmp/time22 |awk '{cmd="date -d @"$1; print system(cmd),$2 }' |more
Tue Feb 12 01:16:02 CST 2019
0 [12/Feb/2019:02:38:05
Tue Feb 12 00:38:37 CST 2019
0 [12/Feb/2019:02:38:09
Tue Feb 12 00:26:32 CST 2019
0 [12/Feb/2019:02:38:10


jzsjm1002 发表于 2019-02-13 18:33

本帖最后由 jzsjm1002 于 2019-02-13 23:26 编辑

cat a00.xml
1549905362 [12/Feb/2019:02:38:05
1549903117 [12/Feb/2019:02:38:09
1549902392 [12/Feb/2019:02:38:10

sed -r 'h;s/({10}).*/date -d @\1/e;G;s/{10}|\n//g' a00.xml
Tue Feb 12 01:16:02 CST 2019 [12/Feb/2019:02:38:05
Tue Feb 12 00:38:37 CST 2019 [12/Feb/2019:02:38:09
Tue Feb 12 00:26:32 CST 2019

cfwyy 发表于 2019-02-13 22:33

awk '{"date -d @"$1 | getline a;print a,$2}' file.txt

kingkingdm 发表于 2019-02-14 10:32

回复 3# cfwyy
谢谢

本友会机友会摄友会 发表于 2019-02-15 15:28

页: [1]
查看完整版本: 针对某一列调用系统命令