파일에서 개행 문자를 건너 뛰는 경우를 제외하고는 정상적으로 작동하는 sed 명령이 있습니다. 여기 내 명령입니다SED가 'possible'newline으로 대체됩니다.
sed -i 's,<a href="\(.*\)">\(.*\)</a>,\2 - \1,g'
지금, 그것은 완벽하게 작동,하지만 난 너무 같은 a
태그가이 파일을 가로 질러 :
<a href="link">Click
here now</a>
물론 그것은이 하나를 찾을 수 없습니다. 그래서 어떻게 든 검색에서 줄 바꿈을 허용하도록 수정해야합니다. 그러나 내가 먼저 전체 파일을 검토하고 모든 파일을 먼저 제거하지 않으면 그 파일을 허용하는 방법을 알 수 없습니다. \n
. 문제 파일에서 모든 서식이 느슨합니다. 출력에 포함 된 줄 바꿈을 떠날 것,있는 그대로
sed -e '/<a href/{;:next;/<\/a>/!{N;b next;};s,<a href="\(.*\)">\(.*\)</a>,\2 - \1,g;}' yourfile
, 그리고 당신이 그렇게 원한다면 그것은 분명하지 않다 :
다음 오류가 계속 발생합니다 :'sh : 1 : 구문 오류 : 끝나지 않은 따옴표 붙은 문자열' – jfreak53
이것은 쉘에서 발생합니다. 올바른 위치에 작은 따옴표를 넣어야합니다. (복사 및 마지막 예제를 다시 내 껍질에 붙여 넣고 잘 작동합니다.) BTW, sed 버전의 \ s (공백) 이스케이프를 좋아하지 않는 경우 리터럴 공간을 사용할 수 있습니다. 또는 [[: space : ]] 대신에. – William
찾았습니다! 나는 내가 mailcap 파일의 Mutt에서이 명령을 사용하고 있다고 언급 했어야 했으므로 각';':)를 벗어나야했다. 그래도 지금 일하고있어. – jfreak53