PCRE grep을 sed에 파이핑

PCRE grep을 sed에 파이핑

이 파일을 sed하고 싶지만 sed의 BRE가 원하는 대로 작동하지 않습니다.

내가 지금 가지고 있는 것은 기본적으로 다음과 같습니다.

$ cat Dungeon | grep -P -o '<\/.*?>'

내 질문은 이것을 어떻게 보내나요? 내가 grep한 조각을 제거하고 싶습니다. 대안도 환영합니다. 가능하다면 이 문제도 해결하는 방법을 알고 싶습니다.

(예, HTML에서 정규식을 사용하고 있습니다)

답변1

"PCRE sed" 도구를 사용하십시오.

cat Dungeon | perl -pe 's/<\/.*?>//g'

perl -i -pe 's{</.*?>}{}g' Dungeon

grep과 sed를 결합하는 일은 거의 일어나지 않습니다. 두 사람은 파일에서의 위치와 기존 일치 항목을 전달할 만큼 충분한 컨텍스트를 교환하지 않습니다. grep -b각 일치 항목의 바이트 오프셋을 얻으려고 시도할 수 있습니다 .sed가 아닌 다른 것파일에서 해당 바이트 범위를 제거하려면) 또는 grep -o출력을 sed의 POSIX 확장 정규식에 적합한 괴물 정규식으로 변환해 보십시오( a|b|c분기 구문을 위해 줄바꿈을 파이프로 변경하고 모든 정규식 특수 문자를 이스케이프해야 함 - 또 다른 ' sed' 호출 자체), 둘 중 하나라도 가치 있는 것보다 훨씬 더 많은 노력이 필요합니다.

관련 정보