그 다음에:
A=<item ok:my=world"hello/my.earth/my.land/mycity"><item or mylove:heart="myGIRL" oh:myGOD="i-love-you"><item></item></item></item>
B=<item ok:my=world"hello/my.earth/my.land/mycity"><item or mylove:heart="myGIRL" oh:myGOD="i-love-you"><item>LOVER.png;LOVER-ever.png</item></item></item>
아마도 명령은 sed, awk일 것입니다.
글쓰기 오류 수정중입니다..
#!/bin/bash
replace_a=<item ok:my=world"hello/my.earth/my.land/mycity"><item or mylove:heart="myGIRL" oh:myGOD="i-love-you"><item></item></item></item>
replace_b=<item ok:my=world"hello/my.earth/my.land/mycity"><item or mylove:heart="myGIRL" oh:myGOD="i-love-you"><item>LOVER.png;LOVER-ever.png</item></item></item>
....
....
답변1
[[:punct:]]
문자 클래스 사용 sed
:
% LC_ALL=C sed 's/[[:punct:]]//g' <<<"$A"
item okmyworldhellomyearthmylandmycityitem or myloveheartmyGIRL
% LC_ALL=C sed 's/[[:punct:]]//g' <<<"$B"
item okmyworldhellomyearthmylandmycityitem or myloveheartmyGIRL ohmyGODiloveyouitemLOVERpngLOVEReverpngitemitemitem
[[:punct:]]
로케일의 다음 문자와 일치합니다 C
.
! " # $ % & ' ( ) * + , - . / : ; < = > ? @ [ \ ] ^ _ ` { | } ~
답변2
내가 찾은 다른 트릭:
sed -i '/earth/d' file.txt
echo '<item ok:my=world"hello/my.earth/my.land/mycity"><item or mylove:heart="myGIRL" oh:myGOD="i-love-you"><item>LOVER.png;LOVER-ever.png</item></item></item>' >> file.txt
기술적으로 좋은가? 다들 감사 해요!
답변3
"A" 문자열이 input.xml이라는 파일에 저장되어 있다고 가정합니다.
sed -e 's/<item></<item>LOVER.png;LOVER-ever.png</' input.xml
그러면 줄의 첫 번째 "빈" <item></item>에 "LOVER.png;LOVER-ever.png" 문자열이 삽입되어 A 문자열이 B 문자열로 변환됩니다.
정규식을 사용하여 XML이나 HTML 또는 유사한 구조화된 데이터 파일을 구문 분석하고 조작하는 것은 기껏해야 신뢰할 수 없습니다(심지어 가장 간단한 경우에만 해당). 신뢰할 수 있는 결과를 얻으려면 XML 파서 또는 유사한 파서를 사용해야 합니다. 유효한 XML입니다.