-1
사용자와 상호 작용하는 동안 변수를 사용하는 쉘 스크립트에서 sed 명령을 사용하려고하지만 역 참조 I로 인해 작동하지 않게하려고합니다. 그것에서 사용하십시오 .... 어떤 도움 ...?쉘 스크립트 내 sed 명령에서 역 참조 다루기
스크립트 :
echo "Origin language?\n"
read ol
echo "\nTarget language?\n"
read tl
echo "\ntmx file name?\n"
read file
는 다음의 sed 명령에 내가 시도 이러한 방법 :
1
sed -r "s/lang=\"$ol\">(.*)$/\1/g" "$file" > ${file}_${ol}.txt
sed -r "s/lang=\"$tl\">(.*)$/\1/g" "$file" > ${file}_${tl}.txt
2
thisol = "<tuv xml:lang=\"$ol\">(.*)$"
thistl = "<tuv xml:lang=\"$tl\">(.*)$"
sed -r "s/$thisol/\1/g" "$file" > ${file}_${ol}.txt
sed -r "s/$thistg/\1/g" "$file" > ${file}_${tl}.txt
나는이 질문에 대한 답을 찾을 수 @EdMorton에 의해 만들어진 주석을 바탕으로
thisol = "<tuv xml:lang=\"$ol\">(.*)$"
thistl = "<tuv xml:lang=\"$tl\">(.*)$"
that = "\\\1"
sed -r "s/$thisol/$that/g" "$file" > ${file}_${ol}.txt
sed -r "s/$thistg/$that/g" "$file" > ${file}_${tl}.txt
. '\ (. * \) '와 같이. – tvm
그건 내가 실수로 시도한 것들 중 하나 였지만 나는 다시 시도했지만 성공하지 못했습니다 .... –
'sed -E 's/lang =' "$ ol" '> (. *) $/\ 1/g ' "$ file"> "$ {file} _ $ {ol} .txt". –