Execute um comando com o parâmetro each filename em uma pasta

0

Eu gostaria de executar um comando, vamos chamá-lo abc e adicionar como parâmetro cada nome de arquivo na pasta atual. Como eu poderia fazer isso no C Shell (ou outra linguagem de script)?

    
por ddmichael 27.02.2013 / 13:27

2 respostas

1

Usando csh ou tcsh , isso iteraria todos os arquivos e diretórios no diretório atual. Eu usei aspas em torno da substituição da variável $i no caso de alguns dos nomes terem espaços.

foreach i (*)
   abc "$i"
end

Se você deseja obter apenas os arquivos, não os diretórios, use o -f test. Aqui eu usei a declaração if de formato curto do shell C.

foreach i (*)
   if (-f "$i") abc "$i"
end
    
por 27.02.2013 / 17:48
0

Procure por xargs . Se o seu shell é parecido com o meu, o seguinte deve funcionar bem:

find . -type f -maxdepth 1 | xargs abc

Se você está preocupado com espaços nos nomes dos arquivos, veja o comentário de Daniel Andersson abaixo.

    
por 27.02.2013 / 14:38