Quer saber porque o sed não está funcionando com xargs como eu esperava

1

Estou me perguntando por que o seguinte comando não funcionaria:

sudo find . -name index.htm | xargs -0 sudo sed -i 's/pattern1/pattern2/g'

Quando executamos os dois comandos separadamente, eles funcionaram como esperado, find encontrou todos os arquivos que eu estava precisando alterar e sed substituiu corretamente o texto de acordo com o regex (obviamente quando eu executei o comando sed separadamente i forneceu um nome de arquivo como argumento). Ao executá-los juntos com xargs -0, recebi

sed:
    ./index.htm
    ./folder1/index.htm
    ./folder1/subfolder2/index.htm
    ...
    ...
    ./lastfolder/index.htm: No such file or directory

Acabei usando

sudo find . -name index.htm -exec sudo sed -i 's/pattern1/pattern2/g' {} \;

e funcionou bem, eu estava curioso para saber porque usar xargs não funcionava ....

    
por W_P 13.02.2010 / 15:27

2 respostas

3

Você não usou a opção -print0 com find .

    
por 13.02.2010 / 15:38
1

Existe algum espaço no diretório ou nos nomes dos arquivos?

    
por 13.02.2010 / 16:43

Tags