本文介绍了转换日期格式在awk中,行包含2日期和一个IP的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我有以下行:

192.168.1.200§Feb 24 10:22:14 2014 GMT§Aug 24 10:22:14 2014 GMT

和我想要将其转换成该行使用awk(或别的东西):

and I want to convert it into this line with awk (or something else):

2014-02-24 2014-02-24 192.168.1.200

我能一个日期转换使用awk,使用这个命令:

I was able to convert ONE Date with awk, using this command:

awk 'BEGIN { FS="§"} {cmd1="date \"+%Y-%m-%d\" -d \""$2"\""; cmd1 | getline var;  print var}'

但我不知道如何将行转换的一个命令?

but I don't know how to convert the row in one command?

推荐答案

试试这个:

BEGIN {
    FS="§"
}

{
    cmd1="date \"+%Y-%m-%d\" -d \""$2"\""
    cmd1 | getline var1
    cmd2="date \"+%Y-%m-%d\" -d \""$3"\""
    cmd2 | getline var2
    print var1, var2, $1
}

用法:

$ cat in.txt
192.168.1.200§Feb 24 10:22:14 2014 GMT§Aug 24 10:22:14 2014 GMT
$  awk -f conv.awk < in.txt
2014-02-24 2014-08-24 192.168.1.200

这篇关于转换日期格式在awk中,行包含2日期和一个IP的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!

11-01 07:17