XML에서 문자열 바꾸기

XML에서 문자열 바꾸기

XML 파일의 폴더 이름 값을 바꾸려고 합니다. grep을 사용하여 필요한 패턴을 검색하고 폴더 이름 값 DF_GCSS를 변수의 ABC_DEF로 바꿉니다. 아래 언급된 설명은 폴더 이름 값을 바꾸는 데만 사용하고 있지만 출력이 예상과 다릅니다. 기존 폴더 값에 변수 데이터를 추가합니다.

FLDR_NM=ABC_DEF
grep -i "<FOLDER NAME" file_name.xml |  sed 's/<FOLDER NAME="[Aa0-Zz9]"*/<FOLDER NAME="'$FLDR_NM'"/1g'

산출:

<FOLDER NAME="ABC_DEF"F_GCSS" GROUP="" OWNER="Administrator" SHARED="NOTSHARED" DESCRIPTION="" PERMISSIONS="rwx---r--" UUID="5ff15b2a">

예상 출력:

<FOLDER NAME="ABC_DEF" GROUP="" OWNER="Administrator" SHARED="NOTSHARED" DESCRIPTION="" PERMISSIONS="rwx---r--" UUID="5ff15b2a">

답변1

현재 폴더 이름이 밑줄( )이 포함된 영숫자만 될 수 있는 경우에 _작동합니다 .

my_folder="ABC_DEF"; 
cat tmp.xml | sed -e "s/FOLDER NAME=\"[[:alnum:]_]*\"/FOLDER NAME\=\"$my_folder\"/g"

폴더 이름은 tmp.xml다음으로 설정됩니다.F_GCSS

산출:

<FOLDER NAME="ABC_DEF" GROUP="" OWNER="Administrator" SHARED="NOTSHARED" DESCRIPTION="" PERMISSIONS="rwx---r--" UUID="5ff15b2a">

관련 정보