나는 달리려고 노력하고있다.
sed -i "/$variable/c \$variable1' file.txt
그러나 파일의 변경 사항은 표시되지 않습니다 file.txt
.
그러나 동일한 명령은 변수 없이도 잘 작동합니다.
sed -i "/variable/c \variable1' file.txt
답변1
이와 같이:
sed -i "/$variable/c \\${variable}1" file.txt
다양성:
\
a 앞에 one 이 있으면$
쉘이$
문자열에 리터럴을 삽입하게 됩니다. 대신 at 리터럴이 인쇄\
되도록 첫 번째 항목을 이스케이프하는 추가 항목을 추가하세요 .\
변수 뒤에 문자나 숫자가 오면,
{...}
존재하지 않는 변수와 변수를 구별하기 위해 이름을 묶습니다variable1
(변수가 존재하지 않으면 쉘은 더 짧은 이름을 찾는 대신 아무 것도 확장하지 않습니다).인용문과 일관성을 유지하기 위해 로 시작하므로 !
"
로 끝나지 마십시오 .'
그럼에도 불구하고 변수는 큰따옴표 내에서만 확장될 수 있습니다.
이와 같은 것을 디버깅하려면 echo
다음 명령을 사용하여 출력을 보면 무엇이 잘못되었는지 확인할 수 있습니다.
echo sed -i "/$variable/c \$variable1" file.txt
그것을 비교하십시오;
echo sed -i "/$variable/c \\${variable}1" file.txt