![sed 명령에서 변수를 사용하는 방법](https://linux55.com/image/35702/sed%20%EB%AA%85%EB%A0%B9%EC%97%90%EC%84%9C%20%EB%B3%80%EC%88%98%EB%A5%BC%20%EC%82%AC%EC%9A%A9%ED%95%98%EB%8A%94%20%EB%B0%A9%EB%B2%95.png)
나는 달리려고 노력하고있다.
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