텍스트 파일은 yyyy/mm/dd를 검색하여 yyyy-mm-dd로 바꿉니다.

텍스트 파일은 yyyy/mm/dd를 검색하여 yyyy-mm-dd로 바꿉니다.

다음 줄 형식의 여러 태그가 포함된 파일이 있는데 하나의 파일에 있는 모든 인스턴스에 지정된 대로 yyyy/mm/dd태그를 바꾸고 싶습니다 . 예를 들어/-yyyy-mm-dd

이것부터: <tag k='start_date' v='2011/01/01' />
이것까지:<tag k='start_date' v='2011-01-01' />

Mac 10.11.6을 사용하고 있습니다.

답변1

sed당신은 그것을 사용할 수 있습니다

$ sed -E 's|([0-9]{4})/([0-9]{2})/([0-9]{2})|\1-\2-\3|g' file

시도 해봐.

macOS 또는 FreeBSD를 사용하여 파일을 내부에서 편집하려면 -i ''옵션을 추가하세요. 대부분의 다른 sed구현에는 -i별도의 구현이 필요합니다( -i.back두 가지 모두에 대해 작동하고 .back확장 기능을 사용하여 원본 버전을 저장). sed내부 편집을 지원하지 않는 시스템 에서는 (이렇게 영감을 준 ) perl -pi -e대신에 사용할 수 있습니다 .sed -Esed -i

답변2

죄송합니다. 아니요. 작동하지 않습니다. 텍스트는 변경되지 않습니다.

하지만 이건 효과가 아주 좋습니다...

perl -pi -e 's|([0-9]{4})/([0-9]{2})/([0-9]{2})|\1-\2-\3|g' file

관련 정보