替换行中日期字段的尾随零

替换行中日期字段的尾随零

这是我的输入

"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'

您的示例输入在开头和结尾包含双引号,因此推测行末尾永远不会有浮点数。

相关内容