2014-01-21 21 views
-1

考慮下面的文字替換毫秒第二場:在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 

回答

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 
3

如果你只是刪除第二個值逗號後添加的第一個字段的毫秒,那麼這應該足夠了:

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

它的作用是定義兩個possib與-F"[.,]",然後打印第1,第2和第2場的基礎上分離。

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