sed의 슬래시 및 백슬래시

sed의 슬래시 및 백슬래시

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'

관련 정보