공백이 포함된 sed 디렉터리 파일 이름

공백이 포함된 sed 디렉터리 파일 이름

스크립트를 작성 중인데 Google의 도움을 받아도 막히네요.

이것은 내 코드입니다.

"find"에 있는 폴더의 경우 -d | sed "s#^.#$(pwd)#" sed 's/ /\ /g'`
하다
    에코 "$폴더"
완벽한

이렇게 하면 ""의 첫 번째 인스턴스만 "\"으로 바뀌고 나머지는 바뀌지 않습니다.

어떤 아이디어가 있나요?

답변1

이 방법으로 명령을 작성하는 것을 잊어버리고 다음을 사용하십시오 find -execdir.

find . -type d -execdir sh -c 'pwd' \;

또는 zsh를 사용하십시오.

for d in **/*(/); do
  echo $d
done

답변2

xargs반복하는 대신 요소 목록에 대해 동일한 명령을 수행 할 수 있습니다 . 공백을 처리하는 몇 가지 옵션이 있습니다.

답변3

내 생각엔 당신이 모든 것을 복잡하게 만드는 것 같아요.

어쩌면 이것이 필요할 수도 있습니다:

find $(pwd) -type d | sed 's/ /\\ /g'

관련 정보