Como fazer um loop sobre arquivos numerados e também as saídas?

0

Estou tentando executar:

cat s_f_d_TMT161023_1306.fits.coo.1 | sed -e '/^#/d'| sort -n -k 3 | head -n 50 >> inputcoo2.list

e

cat s_f_d_TMT161023_1307.fits.coo.1 | sed -e '/^#/d'| sort -n -k 3 | head -n 50 >> inputcoo3.list

e assim por diante.

Os últimos quatro caracteres em que estou usando o cat varia de 1305 e vão até 1440 . Eu também quero que o nome da saída seja aumentado em um como inputcoo3.list e inputcoo4.list e assim por diante.

Eu posso adivinhar que devo executar algum tipo de loop, mas sou novo no bash e não tenho nenhuma ideia de como implementá-lo.

Como faço para isso?

    
por Prada 25.07.2017 / 15:56

1 resposta

3

tente

for i in $(seq 1305 1440)
do
  j=$((i - 1304))
  sed -e '/^#/d' "s_f_d_TMT161023_${i}.fits.coo.1" | 
    sort -n -k 3 | 
    head -n 50 >> "inputcoo${j}.list"
done
  • , salve uma chamada para cat
  • observe que o arquivo de destino será anexado
  • se você quiser levar 0 (zero numérico, não caractere o) ao nome do arquivo, use j="$(printf '%03d' $i)"
por 25.07.2017 / 16:04