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">