スペースを含む 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'

関連情報