답변1
태그 내에 개행 문자가 없고 Container
같은 줄에 두 개의 태그가 없는 가장 간단한 경우를 고려하면,
sed -n 's_.*<Container \([^>]*\) />.*_\1_p' filename
원하는 출력을 제공해야합니다.
- 이
s
명령은 패턴을 대체 패턴으로 바꿉니다. .*<Container
전체 줄을 태그 시작 부분과 일치시킵니다. 삭제하고 싶습니다.[^>]*
>
(여러 태그를 캡처하는 것을 방지하기 위한 것임)을 제외하고 모든 문자 수와 일치합니다 . 이것은\(\)
교체에 사용할 수 있도록 보관하고 싶은 부분입니다.\1
/>.*
당신이 버리고 싶은 줄의 나머지 부분입니다\1
의 교체는 첫 번째 쌍과 일치하는 부품을 나타내\(\)
므로 이것이 인쇄하려는 것입니다.- 일치하는 경우 출력을 인쇄하고 이 옵션
p
은 다른 출력을 억제 합니다.-n
상황이 더 복잡해지면 전문적인 XML 도구나 XML 구문 분석 라이브러리를 사용하는 것이 좋습니다 python
.