Nomes de arquivos de diretório com sed com espaços em branco

2

Estou trabalhando em um roteiro e estou preso, mesmo com a ajuda do google.

Aqui está o meu código:

for FOLDER in 'find . -type d | sed "s#^.#$(pwd)#" | sed 's/ /\ /g''
do
    echo "$FOLDER"
done

Isso substituirá apenas a primeira instância de "" por "\", mas não o restante.

Alguma idéia?

    
por MonkeyWrench32 03.09.2010 / 08:50

3 respostas

2

Esqueça a estruturação do seu comando dessa forma e use find -execdir :

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

Ou use zsh:

for d in **/*(/); do
  echo $d
done
    
por 03.09.2010 / 09:18
2

Você pode usar xargs em vez de um loop para executar o mesmo comando em uma lista de elementos. Existem opções para cuidar dos espaços em branco.

    
por 03.09.2010 / 11:04
1

Eu acho que você está complicando tudo.

Talvez você só precise disso:

find $(pwd) -type d | sed 's/ /\ /g'
    
por 03.09.2010 / 14:49