<li>
많은 index.html 페이지에서 다음 html 태그를 제거해야 합니다 .
<li>
<a href="https://forward.global.ssl.fastly.net/contributoragreements/" onclick="_gaq.push(['_trackEvent', 'ClickTracking', 'TopNav_Contact_Editorial', window.location.href]);">Editorial</a>
</li>
여러 파일에서 반복적으로 삭제해야 합니다. 그래서 나는 리눅스의 sed에서 정규식을 사용하는 것이 최선의 선택이라고 생각합니다. 여러 가지 방법을 시도했지만 해결책을 찾지 못했습니다. index.html 파일에는 다른 태그가 있지만 <li>
어쨌든 편집해서는 안 됩니다. 위의 태그만 제거해야 합니다.
미리 감사드립니다.
답변1
문서 조각이 올바른 형식의 XHTML 파일의 일부라고 가정하면 li
속성 값이 다음을 사용하는 노드가 포함된 모든 노드를 제거할 수 있습니다.a
href
https://forward.global.ssl.fastly.net/contributoragreements/
xmlstarlet
xmlstarlet ed --delete '//li[a/@href = "https://forward.global.ssl.fastly.net/contributoragreements/"]' file.xhtml
문서가 올바른 형식의 XHTML 문서가 아닌 경우 먼저 복구를 시도할 수 있습니다.
xmlstarlet fo --recover --html file.html |
xmlstarlet ed --delete '//li[a/@href = "https://forward.global.ssl.fastly.net/contributoragreements/"]'
index.html
회전된 디렉토리 구조의 모든 파일에 대해 이 명령을 실행하려면 top-dir
다음 xmlstarlet
과 같이 호출하십시오 find
.
find top-dir -type f -name index.html -exec sh -c '
tmpfile=$(mktemp)
for pathname do
cp "$pathname" "$tmpfile"
xmlstarlet fo --recover --html "$tmpfile" |
xmlstarlet ed --delete "//li[a/@href = \"https://forward.global.ssl.fastly.net/contributoragreements/\"]" >"$pathname.new"
done
rm -f "$tmpfile"' sh {} +
위의 코드는 index.html.new
발견된 각 파일 에 대해 index.html
새 파일을 생성 합니다. 위 명령에서 실행을 제거하기 전에 .new
이러한 파일을 살펴보고 정상적으로 보이는지 확인해야 합니다.
분명히 너도 들어가야 해복사테스트 중에 데이터가 백업되었습니다.