sed 명령에서 변수를 사용하는 방법

sed 명령에서 변수를 사용하는 방법

나는 달리려고 노력하고있다.

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

다양성:

  1. \a 앞에 one 이 있으면 $쉘이 $문자열에 리터럴을 삽입하게 됩니다. 대신 at 리터럴이 인쇄 \되도록 첫 번째 항목을 이스케이프하는 추가 항목을 추가하세요 .\

  2. 변수 뒤에 문자나 숫자가 오면, {...}존재하지 않는 변수와 변수를 구별하기 위해 이름을 묶습니다 variable1(변수가 존재하지 않으면 쉘은 더 짧은 이름을 찾는 대신 아무 것도 확장하지 않습니다).

  3. 인용문과 일관성을 유지하기 위해 로 시작하므로 ! "로 끝나지 마십시오 . '그럼에도 불구하고 변수는 큰따옴표 내에서만 확장될 수 있습니다.

이와 같은 것을 디버깅하려면 echo다음 명령을 사용하여 출력을 보면 무엇이 잘못되었는지 확인할 수 있습니다.

echo sed -i "/$variable/c \$variable1" file.txt

그것을 비교하십시오;

echo sed -i "/$variable/c \\${variable}1" file.txt

관련 정보