这是我的输入
"004|B20A|2008-09-01 00:00:00.000|C|2008-09-01 00:00:00.070|4277"
我的输出应该是
"004|B20A|2008-09-01 00:00:00.0|C|2008-09-01 00:00:00.07|4277"
答案1
你可以这样做:
perl -F'[|]' -lae 's/\.\d+?\K0+$// for $F[2], $F[4]; print join "|", @F'
(这里假设日期字段分别是第三个和第五个)。
答案2
有一个文件
perl -ip -e 's/(\.\d+?)0*(\|)/$1$2/g' "$F"
或用管子
echo "$V" | perl -pe 's/(\.\d+?)0*(\|)/$1$2/g'
答案3
这个怎么样?:
perl -pe 's/(\.\d+?)0*(\D)/$1$2/g'
您的示例输入在开头和结尾包含双引号,因此推测行末尾永远不会有浮点数。