아래 태그를 새 콘텐츠와 태그 행으로 바꾸려고 합니다. sed 또는 다른 옵션을 사용하여 레이블과 해당 값을 변경하는 방법이 있습니까?
원본 HTML 태그(내부 th>
태그):
th> file-109 /th>
th> file-209 /th>
이 HTML 태그를 다음으로 변경합니다.
th>S.No Name /th>
th>S.No Name /th>
아래 방법을 시도해 보았지만 효과가 없습니다. 던지기 오류입니다.
sed "s/th>file-1.*/'th>`head -5 file-109 | tail -1`/th>'/g" Diff.html
sed "s/th>file-2.*/'th>`head -5 file-209 | tail -1`/th>'/g" Diff.html
답변1
sed는 /를 선택한 구분 기호로 다양한 문자를 사용할 수 있지만 /는 바꾸려는 문자열에도 나타납니다. 따라서 나는 다음을 선택합니다.
sed 's:th>file-[0-9]+ /th>:th>S.No name /th>:g' yourfile
그러나 이보다 더 복잡한 것을 처리하려면 정규식을 사용하지 말고 HTML을 구문 분석해야 합니다.
답변2
얼마나 강력해야 하는지는 잘 모르겠지만 다음을
sed -e "s/file-[^/ ]*/S.No Name/g" Diff.html
사용하여 파일을 직접 편집 해 보십시오.sed -ie
답변3
perl -0777pe '
s{ (?<=th>\s) file-\d+ (?=\s/th>) }{
qx/sed -e "4q;d" "$&"/ =~ /.*/;
$&;
}xge;
' Diff.html
내가 올바르게 이해했다면 파일의 th> 및 /th> 태그에 포함된 모든 파일 이름을 File-num
방금 선택한 파일의 네 번째 줄로 바꾸길 원할 것입니다.