Repetindo o comando com diferentes nomes de arquivos

2

Aqui está uma disposição para alguém ...

Estou tendo que executar um comando repetidamente:

$ wp input csv MyCSV01.csv directory_name
$ wp input csv MyCSV02.csv directory_name
$ wp input csv MyCSV03.csv directory_name

A única mudança é o nome do arquivo está incrementando. Como posso executar tudo isso de volta para trás?

Talvez encontre todos os arquivos que começam com MyCSV* e, em seguida, execute-os em ordem? E / ou especifique um intervalo de arquivos para executar MyCSV03.csv a MyCSV05.csv ?

Idealmente, a solução é curta o suficiente para a linha de comando, mas pode ser um script.

    
por Meltemi 02.12.2015 / 19:59

3 respostas

6
for i in {01..20}; do  #replace with your own range
   echo \
   wp input csv "MyCSV$i.csv" directory_name
done

Comente a linha de eco se ela fornecer os resultados desejados.

zsh , com o qual você marcou sua pergunta, tem um formato mais curto:

for i (MyCSV{01..20}.csv) wp input csv $i directory_name

Ou você pode usar a função zargs :

autoload zargs # best in ~/.zshrc
zargs -i MyCSV{01..20} -- wp input csv {} directory_name
    
por 02.12.2015 / 20:15
3
for   csv in MyCSV[01][0-9].csv
do    wp  input "$csv" directory_name
done
    
por 02.12.2015 / 20:42
3

Em zsh

: MyCSV<01-20>.csv(e*'wp input csv $REPLY directory_name'*)
    
por 02.12.2015 / 21:37