web-dev-qa-db-ja.com

空白を含むsedを含むディレクトリファイル名

私はスクリプトに取り組んでいて、グーグルの助けを借りても行き詰まっています。

これが私のコードです:

 `findのFOLDERの場合。 -タイプd | sed "s#^。#$(pwd)#" | sed's// \/g'` 
 do 
 echo "$ FOLDER" 
 done 

これにより、「」の最初のインスタンスのみが「\」に置き換えられ、残りは置き換えられません。

何か案は?

2
MonkeyWrench32

コマンドをそのように構成することを忘れて、代わりにfind -execdirを使用してください。

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

またはzshを使用します。

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

要素のリストで同じコマンドを実行するために、ループの代わりにxargsを使用できます。空白を処理するオプションがあります。

2
mouviciel

あなたはすべてを複雑にしていると思います。

たぶんあなたはこれだけが必要です:

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