Windows의 경로를 sed로 바꾸시겠습니까?

Windows의 경로를 sed로 바꾸시겠습니까?

현재 디렉터리를 포함하는 모든 경로를 제거하려고 했기 때문에 그렇게 했습니다.

my_command | sed "s/%CD%//ig"

명령 프롬프트에서 실행했지만 작동하지 않았습니다. 모든 것이 이전과 똑같이 나왔습니다.

어떻게 작동하게 만들까요?

답변1

명령의 문제점은 백슬래시가 리터럴 백슬래시가 아닌 이스케이프 문자로 처리된다는 것입니다.

이스케이프된 디렉터리 이름을 보조 변수에 저장하면 이 문제를 해결할 수 있습니다 %dir%.

for /f "tokens=*" %a in ('echo %cd%^| sed "s/\\/\\\\/g"') do set dir=%a

(배치 파일에서 사용하는 경우 모든를 %a로 바꾸십시오 %%a.)

sed이제 평소처럼 사용할 수 있습니다 .

my_command | sed "s/%dir%//ig"

관련 정보