![sed를 사용하여 \를 \\\\로 바꾸고 싶습니다.](https://linux55.com/image/201776/sed%EB%A5%BC%20%EC%82%AC%EC%9A%A9%ED%95%98%EC%97%AC%20%5C%EB%A5%BC%20%5C%5C%5C%5C%EB%A1%9C%20%EB%B0%94%EA%BE%B8%EA%B3%A0%20%EC%8B%B6%EC%8A%B5%EB%8B%88%EB%8B%A4..png)
sed를 사용하여 읽으려고 했습니다 \
. 읽을 수 없으며 \
이를 4로 바꾸고 \\\\
싶습니다 .\
\\\\
답변1
작은따옴표 대체에서는 각 백슬래시에 대해 2개의 백슬래시를 사용합니다.
echo '\' | sed 's/\\/\\\\\\\\/'
큰따옴표 대체에서는 쉘이 각 백슬래시를 \\
백슬래시로 해석하므로 각 백슬래시 리터럴에 4개의 백슬래시가 필요합니다.
echo '\' | sed "s/\\\\/\\\\\\\\\\\\\\\\/"
답변2
sed 's/[\]/&&&&/'
에서는 [...]
괄호 안에 있는 집합의 단일 문자와 일치하는 표현식입니다. 각 문자 \
는 리터럴이므로 이스케이프할 필요가 없습니다(표현식 주위에 작은 따옴표를 사용하는 경우 큰 따옴표를 사용하면 여전히 이스케이프 백슬래시가 필요합니다). .
대체 문자열의 4개 문자열은 각각 &
정규식이 일치하는 항목으로 대체됩니다.
아니면 [\]
기분이 이상하다면,
sed 's/\\/&&&&/'