![변수를 사용하여 Linux에서 특수 문자를 변경하는 방법](https://linux55.com/image/95084/%EB%B3%80%EC%88%98%EB%A5%BC%20%EC%82%AC%EC%9A%A9%ED%95%98%EC%97%AC%20Linux%EC%97%90%EC%84%9C%20%ED%8A%B9%EC%88%98%20%EB%AC%B8%EC%9E%90%EB%A5%BC%20%EB%B3%80%EA%B2%BD%ED%95%98%EB%8A%94%20%EB%B0%A9%EB%B2%95.png)
특정 파일에서 이 명령을 사용하고 있는데 sed
작동하지 않습니다.
예를 들어
a="adsfkndsa%/{}==admfkdsa"
b=sadkfjdsaklfj
sed -i -e 's/$a/$b/g' /tmp/sample.txt
다른 방법을 제안해주세요.
답변1
방금 이것을 시도했는데 내 시스템(Debian 8)에서 작동합니다.
sed -i.bak "s|$a|$b|g" /tmp/sample.txt
변수에 가 $a
포함되어 있으므로 구분 기호를 변경해야 합니다 /
.
앞으로:
cat /tmp/sample.txt.bak
foo
adsfkndsa%/{}==admfkdsa
bar
뒤쪽에:
cat /tmp/sample.txt
foo
sadkfjdsaklfj
bar
편집, sed 버전 정보:
sed --version
sed (GNU sed) 4.2.2