행의 날짜 필드에 대한 후행 0 바꾸기

행의 날짜 필드에 대한 후행 0 바꾸기

이건 내 입력이야

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

예제 입력에는 시작과 끝 부분에 큰따옴표가 포함되어 있으므로 아마도 줄 끝에 부동 소수점은 없을 것입니다.

관련 정보