다음 줄 형식의 여러 태그가 포함된 파일이 있는데 하나의 파일에 있는 모든 인스턴스에 지정된 대로 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 -E
sed -i
답변2
죄송합니다. 아니요. 작동하지 않습니다. 텍스트는 변경되지 않습니다.
하지만 이건 효과가 아주 좋습니다...
perl -pi -e 's|([0-9]{4})/([0-9]{2})/([0-9]{2})|\1-\2-\3|g' file