sed
awk
or 와 유사 하지만, jq
or 와 유사한 경로 표현식을 사용하여 명령줄에서 HTML 파일을 편집하는 방법을 찾고 있습니다.강아지. 특히 개행, 공백 및 기타 형식 지정 세부 사항은 중요하지 않습니다.
그래서 저는 " 다음의 <body>
첫 번째 태그 <p>
사이에 있는 모든 것을 제거하고 이 텍스트로 바꾸세요"라고 말하고 싶습니다. 또는 " <b>
각각... 을 ... </b>
로 바꾸고 텍스트는 가운데에 남겨두세요"라고 말하고 싶습니다. 파일의 나머지 부분은 변경되지 않은 상태로 유지되어야 합니다.<p font-style=italic>
</p>
Perl, Python 또는 Haskell용 라이브러리도 작동하며 몇 줄의 코드로 쉽게 이 작업을 수행할 수 있습니다(그러나 저는 명령줄 도구를 선호합니다).
배경: 서식이 어색하고 언어 태그가 잘못된 많은 epub 파일을 정리하는 데 사용하고 싶습니다.
답변1
나는 당신이 요구하는 것을 수행할 수 있는 어떤 것도 알지 못하며, 무언가를 만드는 데는 많은 노력이 필요할 것입니다. 우선, 다음을 사용하여 컴파일러를 구축해야 합니다.야크또는 명령을 구문 분석한 다음 이를 다른 코드에 전달하여 실제로 변환을 수행하는 유사한 것입니다.
XLST작동할 수도 있지만 의심스럽습니다. 이는 엄격한 구문을 수용하기에는 너무 불규칙한 마크업 언어인 XML 위에 위치합니다. 특히 그 위에 CSS를 덤프하기 시작하는 경우 더욱 그렇습니다.
나는 고를 것이다진주 HTML::파서도서관(또는 그 친구 중 한 명)하이퍼텍스트 마크업 언어모듈 트리(일반적인 작업을 위한 특수 도구가 있는 경우) HTML 문서를 조작하고 버릴 수 있는 작은 내부 데이터베이스 트리로 구문 분석합니다. 나는 그것을 다음과 같은 일을 하기 위해 사용해 왔습니다: 모든 것을 제거하세요아이프레임태그와 콘텐츠를 제거합니다.모두HTML 태그이지만 예상 형식에 가까운 내용을 일반 텍스트로 인쇄하므로 매우 복잡합니다.스크린 스크레이퍼엔진.
사용이 매우 간단하며 무거운 작업을 모두 수행합니다. 보다CPAN페이지의 예. 배포판에는 특정 태그/요소 및/또는 속성을 제거하는 등의 작업을 수행하는 더 많은 예제도 함께 제공됩니다.
석기시대를 기억하라진주웹을 장악하고 주로 HTML 작업에 중점을 둔 Perl Monks는 수십 년 동안 HTML 도구를 연마해 왔습니다.