awk从第一个字段替换第二个字段,毫秒

时间:2014-01-21 16:47:32

标签: bash sed awk

鉴于以下文字:

2014-01-21 15:59:18.916,2014-01-21 15:59:19.232
2014-01-21 16:02:25.917,2014-01-21 16:02:28.457

我正在寻找一个awk语句,将其更改为:

2014-01-21 15:59:18.916,916
2014-01-21 16:02:25.917,917

3 个答案:

答案 0 :(得分:4)

使用bash:

while IFS=, read -r f1 f2; do
    echo "$f1,${f1##*.}"
done << END
2014-01-21 15:59:18.916,2014-01-21 15:59:19.232
2014-01-21 16:02:25.917,2014-01-21 16:02:28.457
END
2014-01-21 15:59:18.916,916
2014-01-21 16:02:25.917,917

答案 1 :(得分:3)

如果您只是删除逗号后面的第二个值并添加第一个字段的毫秒,那么这就足够了:

$ awk -F"[.,]" '{print $1"."$2","$2}' file
2014-01-21 15:59:18.916,916
2014-01-21 16:02:25.917,917

它的作用是用-F"[.,]"定义两个可能的字段分隔符,然后根据该分隔打印第一,第二和第二个字段。

答案 2 :(得分:2)

sed 's/\.\([0-9]*\),.*/.\1,\1/' file