sed
슬래시를 백슬래시와 슬래시로 변경하는 데 사용하고 싶습니다 (예: /
-> ) \/
. 그러나 이것은 작동하지 않습니다. 다음은 작은 예입니다.
#!/bin/bash
TEST=/etc/hallo
echo $TEST
echo $TEST | sed "s/hallo/bello/g"
echo $TEST | sed "s/\//\\\//g"
처음 세 줄의 출력은 가정한 대로입니다. 그러나 마지막 것은 작동하지 않습니다. 왜? 마지막 부분을 수정하는 방법은 무엇입니까?
답변1
사용하는 표현식 주위에 작은따옴표를 사용하십시오.
sed 's/\//\\\//g'
큰따옴표에는 \
특별한 의미가 있으므로 역슬래시를 사용해야 합니다.
sed "s/\//\\\\\//g"
그러나 구분 기호를 변경하는 것이 더 깔끔할 것입니다.
sed 's=/=\\/=g'
sed "s=/=\\\/=g"
답변2
노력하다:
sed 's/\//\\\//g'
또는 슬래시 이스케이프를 방지하려면 다른 구분 기호를 사용하세요.
sed 's,/,\\/,g'