이 파일 eq.txt를 변경하고 싶습니다.
2018-05-03T18:46:05.050Z 11.8314 44.0586 10 4.3 USGS
2018-05-01T05:16:59.270Z 11.0366 43.2334 10 4.1 USGS
2018-04-26T11:13:20.590Z -5.4109 36.5557 10 4 USGS
2018-04-25T09:48:42.940Z 14.8129 41.9053 10 4.3 USGS
eq-new.txt로
2018 05 03 18 46 05.050 11.8314 44.0586 10 4.3 USGS
2018 05 01 05 16 59.270 11.0366 43.2334 10 4.1 USGS
2018 04 26 11 13 20.590 -5.4109 36.5557 10 4 USGS
2018 04 25 09 48 42.940 14.8129 41.9053 10 4.3 USGS
다음을 사용하여 날짜 및 시간 형식을 변경합니다.
sed -r "s/([0-9.]+)-([0-9.]+)-([0-9.]+)T([0-9.]+):([0-9.]+):([0-9.]+)\.000Z/\1 \2 \3 \4 \5 \6.000/g" eq.txt
이것이 내가 원했던 것입니다.
하지만 결과를 eq-new.txt에 저장하고 싶기 때문에 이렇게 합니다.
sed -r "s/([0-9.]+)-([0-9.]+)-([0-9.]+)T([0-9.]+):([0-9.]+):([0-9.]+)\.000Z/\1 \2 \3 \4 \5 \6.000/g" eq.txt > eq-new.txt
불행히도 출력 파일이 잘못되었습니다. eq-new.txt의 날짜 및 시간 형식은 eq.txt와 동일합니다.
나는 또한 이것을 시도했다
tmp=$(sed -E "s/([0-9.]+)-([0-9.]+)-([0-9.]+)T([0-9.]+):([0-9.]+):([0-9.]+)\.000Z/\1 \2 \3 \4 \5 \6.000/g" tmp.txt)
echo -ne "$tmp" > eq-new.txt
더 이상 성공하지 마세요!
sed 및 outfiles에 대해 내가 찾은 것은 아무것도 작동하지 않았습니다.
어떤 아이디어가 있나요?
답변1
패턴 일치 시간은 .000
(리터럴)로 끝나며 그러한 시간이 포함된 줄이 없습니다. 기본적으로 일치하는 항목이 없으므로 교체가 트리거되지 않습니다.