LF가 없는 XML을 쉘에서 sed 명령을 사용하여 보기 좋게 만들고 싶습니다.

LF가 없는 XML을 쉘에서 sed 명령을 사용하여 보기 좋게 만들고 싶습니다.

내 git 저장소에 프로젝트 구조가 있고 git bash에서 쉘 명령을 실행하여 모든 것을 (LF) >로 바꾸려고 합니다. >\n다음 명령을 시도했습니다.

find . -name '*.xml' -exec sh -c 'sed 's/>/>\n/g "$0"' '{}' ';'

내 프로젝트에서 발견된 모든 xml 파일에서 위의 컬렉션(으로)을 대체한다는 의미입니다 >.>\n

커서 ">"를 사용하여 편집기를 입력했기 때문에 내가 뭘 잘못하고 있는지 모르겠습니다... (단지 편집기에서 보기 좋게 만듭니다. 예를 들어 Note++는 XMLTools 플러그인을 사용하면 쉽지만 파일 변경을 원합니다. 각 XML 태그 뒤에 LF로 포함하려면)

파일에 대한 명령을 작성하면 정상적으로 작동합니다.

$ sed 's/>/>\n/g' MyFile.xml

답변1

이것을 사용하는 것은 나쁜 생각입니다 sed. 당신이하고있는 일은 다음과 같습니다.체재XML 파일.

이는 모든 XML 파서에 대한 간단한 작업입니다. 예를 들면 다음과 같습니다.

xmllint --format file.xml

이 유틸리티는 일반적으로 GNU Linux에 기본적으로 설치되거나 소프트웨어 패키지와 함께 설치됩니다.libxml2

또는

xmlstarlet format file.xml

관련 정보