要重新格式化日期和其他行

时间:2016-03-08 16:23:12

标签: linux awk

我需要重新格式化一个包含60,000行的文件,并且每行都采用以下格式:

22/02/2016 1234567745678900

第一个序列是日期,下一个是数字字符串。我需要将两个字段作为输入变量提取到shell脚本中,因此我可以使用它们来搜索日志文件以提取一些数据。因此,日期的格式与日志文件的日期格式一致,我需要将日期修改为unix时间戳格式,以便整行看起来像

2016-02-22

请问正确的Linux awk咒语是什么,它是如何工作的,以便我下次可以复制?

谢谢!

2 个答案:

答案 0 :(得分:0)

如果您希望在文件中将字符串22/02/2016更改为22-02-2016,则可以使用VI编辑器。

:%s/22\/02\/2016/22-02-2016/g

它将找到字符串22/02/2016并更改为22-02-2016

答案 1 :(得分:0)

$ awk '{gsub("/","-"); print $1,$2,"or",$2,$1}' file
22-02-2016 1234567745678900 or 1234567745678900 22-02-2016

编辑:了解更新后的问题

$ echo "22/02/2016 1234567745678900" | awk '{ split($1,a,"/"); print a[3] "-" a[2] "-" a[1]}'
2016-02-22