鉴于以下文字:
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
答案 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