sed를 사용하여 \를 \\\\로 바꾸고 싶습니다.

sed를 사용하여 \를 \\\\로 바꾸고 싶습니다.

sed를 사용하여 읽으려고 했습니다 \. 읽을 수 없으며 \이를 4로 바꾸고 \\\\싶습니다 .\\\\\

답변1

작은따옴표 대체에서는 각 백슬래시에 대해 2개의 백슬래시를 사용합니다.

echo '\' | sed 's/\\/\\\\\\\\/'

큰따옴표 대체에서는 쉘이 각 백슬래시를 \\백슬래시로 해석하므로 각 백슬래시 리터럴에 4개의 백슬래시가 필요합니다.

echo '\' | sed "s/\\\\/\\\\\\\\\\\\\\\\/"

답변2

sed 's/[\]/&&&&/'

에서는 [...]괄호 안에 있는 집합의 단일 문자와 일치하는 표현식입니다. 각 문자 \는 리터럴이므로 이스케이프할 필요가 없습니다(표현식 주위에 작은 따옴표를 사용하는 경우 큰 따옴표를 사용하면 여전히 이스케이프 백슬래시가 필요합니다). .

대체 문자열의 4개 문자열은 각각 &정규식이 일치하는 항목으로 대체됩니다.

아니면 [\]기분이 이상하다면,

sed 's/\\/&&&&/'

관련 정보