Como combinar dados .grd e dados .txt

0

Eu tenho muitos dados nos formatos .grd e .txt, por exemplo:

20121201.grd
20121202.grd
..
..
..
201121231.grd

e também:

Result.2012.1201.txt
Result.2012.1202.txt

::
::
Result.2012.12.31.txt

Eu já tentei usar o comando abaixo para corresponder entre os dados .grd e os dados .txt. Eu também coloco os dados .grd e os dados .txt na mesma pasta.

for n in *.txt
   do echo "processing $n"
   grdtrack "${n%.*}.txt" -G2012*.grd > "${n%.*}h.txt"
done

Mas infelizmente o comando não está funcionando.

Este é o resultado:

processing Result.2012.1205.txt
grdtrack: Could not find file [2012*.grd]

Existe alguém que possa me ajudar?

    
por ahmad 28.02.2014 / 02:54

1 resposta

0

É um pouco incerto quanto ao que você está tentando fazer (por exemplo, você está tentando processar arquivos no formato 2012.mm.dd ou 2012.mmdd? (Você listou ambos).

Você pode "dividir" uma string no bash usando {$ n: x: y}, onde x é a posição inicial e y é o número de caracteres, então algo como isto [com ajustes para seu caso de uso] deve funcionar :

for n in *.txt 
do
    echo "Processing $n"
     grdtrack $n -G{$n:0:4}{$n:5:4}.grd > {$n}h.txt
done

Isso processará os arquivos txt e analisará um parâmetro -G20121202.grd, redirecionando a saída para um novo arquivo de texto.

Veja aqui para mais informações sobre manipulação de strings no bash.

    
por 28.02.2014 / 04:51