我有一个包含以下行的文件:
file.txt的
# 0, 18540, Wed Oct 26 08:01:40 2014
`cd xyz`
# 0, 18571, Wed Nov 26 08:01:41 2014
`cd abc`
# 0, 18881, Wed Nov 26 08:01:55 2014
`mkdir lib`
现在,我想将文件的内容替换为以下内容:
new_file.txt
2014/Oct/26 08:01:40 `cd xyz`
2014/Nov/26 08:01:41 `cd abc`
2014/Nov/26 08:01:55 `mkdir lib`
脚本或shell命令会很棒。
答案 0 :(得分:0)
如何在奇数行上捕捉第3个字段并计算日期如下:
$ date -d"Wed Oct 26 08:01:40 2014" +"%Y/%b/%d %T"
2014/Oct/26 08:01:40
然后,存储变量并将其与完整的偶数行一起打印出来:
$ awk -F, 'NR%2{cmd ="date \"+%Y/%b/%d %T\" -d \""$3"\""
cmd | getline var
close (cmd)
next
}
{print var, $0}' file
对于您的输入,它返回:
$ awk -F, 'NR%2{cmd ="date \"+%Y/%b/%d %T\" -d \""$3"\""; cmd | getline var; close (cmd); next} {print var, $0}' file
2014/Oct/26 08:01:40 `cd xyz`
2014/Nov/26 08:01:41 `cd abc`
2014/Nov/26 08:01:55 `mkdir lib`