파일의 밀리초 필드를 ":" 패턴으로 바꾸고 싶습니다.
Input:-
Jun 12 2018 3:33:49:000PM
Jun 12 2018 3:33:49:850AM
Desired Output:-
Jun 12 2018 3:33:49.000PM
Jun 12 2018 3:33:49.850AM
내 측에서 다음 Sed 명령을 시도했지만 100% 결과를 얻지 못했습니다. 아래는 내 SED 명령입니다.
cat input.txt | sed 's/\(|\|^\|[A-Z]\)\([^|\]*\):\([0-9]\+\)\(AM\|PM\)\(|\|$\)/\1\2.\3 \4\5/g;s/"/ /g;s/:000/.000 /g' >output.txt
답변1
노력하다:
sed -E 's/:([0-9]+[AP]M$)/.\1/'
나는 정규식에 어떤 문제가 있는지 알아내려고 노력하지 않았지만 개인적으로 꼭 필요한 경우가 아니면 줄의 시작 부분을 일치시키지 않을 것입니다. 줄의 끝 부분만 일치시키는 것도 더 빠릅니다.
답변2
마지막으로 세 번째 콜론을 점으로 바꾸고 싶습니다.
sed 's/:/./3' input.txt
답변3
다음 sed 명령을 시도했는데 내 목적이 해결되었습니다.
sed -e 's/([AZ][az]{2}[ ]{1,2}[0-9]{1,2}[ ]{1,2}[0-9]{4}[ ] {1,2}[0-9]{1,2}:[0-9]{2}:[0-9]{2}):([0-9]{3}[A,P]M )/\1.\2/g'