sed를 사용하여 Windows 스타일 경로 검색 및 바꾸기

sed를 사용하여 Windows 스타일 경로 검색 및 바꾸기

\\\\\\\\server\\\path1\\\\path2\\\\ with \\\\server\\path1\\path2\\내 작업은 in의 여러 항목을 바꾸는 것입니다 myfile.txt (추가 백슬래시 제거).

이를 달성하기 위해 sed를 사용해 보았지만 대체할 항목을 찾지 못했습니다.

sed 's:\\\\server\\path1\\path2\\:\\server\path1\path2\:g' myfile.txt

또한 백슬래시를 이스케이프 처리하려고 시도했지만 대체할 항목을 찾지 못했습니다.

sed 's:\\\\\\\\server\\\\path1\\\\path2\\\\:\\\\server\\path1\\path2\\:g' myfile.txt

어리석은 질문일지도 모르지만 정말 혼란 스럽습니다. 명령을 통해 이 작업을 수행하는 방법을 모든 곳에서 찾아보았지만 시도한 것은 아무것도 작동하지 않았습니다.

답변1

당신은 그것을 사용할 수 있습니다

sed -e 's,\\\\,\\,g' -e 's/^\\\([^\\]\)/\\\\\1/' 

(두 번째 부분은 사용 사례에 따라 \something원할 \\something수도 있고 원하지 않을 수도 있습니다.)

그런 식으로:

\\something\already\ok   stays ok  (thanks to the 2nd part)
\\\\something\\like\\this becomes \\something\like\this

두 번째 부분이 생략된 경우,

\\something\like\that becomes \something\like\that , which is wrong

관련 정보