No Linux:
printf -- '-get data_%d.txt\n' $(seq 1 3 100) | sftp -b - [email protected]
No BSD (sem seq(1)
à vista):
printf -- '-get data_%d.txt\n' $(jot 100 1 100 3) | sftp -b - [email protected]
Eu tenho uma longa lista de arquivos de dados que eu preciso copiar para o meu servidor, eles têm os nomes
data_1.dat
data_2.dat
data_3.dat
...
data_100.dat
A partir de data_1.dat
, gostaria de obter todos os arquivos em que o número é aumentado em 3, ou seja, data_4.dat
, data_7.dat
, data_10.dat
, ...
Existe uma maneira de especificar isso? Agora eu estou fazendo manualmente usando get data_4.dat
, mas deve haver uma maneira de automatizar isso.
No Linux:
printf -- '-get data_%d.txt\n' $(seq 1 3 100) | sftp -b - [email protected]
No BSD (sem seq(1)
à vista):
printf -- '-get data_%d.txt\n' $(jot 100 1 100 3) | sftp -b - [email protected]
bash
suporta a construção de loop de estilo C, você pode aproveitar isso:
for ((i=1; i<=100; i+=3)); do echo file_$i.dat; done
Substitua echo file_$i.dat
pela operação desejada no arquivo.
Exemplo:
$ for ((i=1; i<=100; i+=3)); do echo file_$i.dat; done
file_1.dat
file_4.dat
file_7.dat
file_10.dat
file_13.dat
file_16.dat
file_19.dat
file_22.dat
file_25.dat
file_28.dat
file_31.dat
file_34.dat
file_37.dat
file_40.dat
file_43.dat
file_46.dat
file_49.dat
file_52.dat
file_55.dat
file_58.dat
file_61.dat
file_64.dat
file_67.dat
file_70.dat
file_73.dat
file_76.dat
file_79.dat
file_82.dat
file_85.dat
file_88.dat
file_91.dat
file_94.dat
file_97.dat
file_100.dat
Tags command-line sftp linux file-copy