일회용 perl -pi -e
명령을 사용하여 bash 스크립트에서 간단한 검색 및 바꾸기 명령을 사용하고 있습니다. 나는이에 도달 할 때까지 내 정규 표현식에의 대부분은 잘 작동 :현재의 Perl 편집 중에 단일 문자열 정규 표현식 사용
perl -pi -e 's#\<\?mso-application.*\<Table.*Rows="1"\>#\<Table\>#s' 1.xml
perl -pi -e 's#\</Table.*#\</Table\>#s' 1.xml
대신 슬래시의 # 표시를 신경 쓰지 마십시오, 내가 더 많은 문자를 이스케이프 싶지 않았다. 이러한 regexes는 기본적으로 excel에서 내 보낸 XML 파일의 청크를 삭제하지만 작동하지 않습니다. 이것은 문자열에 적용되는 논리를 사용하고 파일에 적용하려고하기 때문에 (필자는 펄의 내부 편집에 대한 기본적인 이해 만하고 있음).
셸 스크립트 내에서 실행할 수있는 다른 방법 (perl, awk 또는 sed)을 사용할 수 있습니까?
가장 작은 예제 파일을 표시하고 수정하려는 항목과 어떤 방식으로 유효한 XML 파일이 아닌지를 지적 할 수 있습니까? –
궁극적으로 필자는 정규 표현식을 bash 스크립트에서 perl 도우미 스크립트를 호출하여 작동 시키지만 도움을 주셔서 감사합니다. 그리고 가장 작은 예제 파일은 0.5 메가 바이트입니다. 나를 믿어도 좋지 않습니다. – Gnats