Jak dopasować dane .grd i dane .txt

0

Mam dużo danych w formatach .grid i .text, na przykład:

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

i również:

Result.2012.1201.txt
Result.2012.1202.txt

::
::
Result.2012.12.31.txt

Próbowałem już użyć poniższego polecenia, aby dopasować dane .grd i dane .txt. Umieszczam także dane .grd i dane .txt w tym samym folderze.

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

Ale niestety polecenie nie działa.

To jest wynik:

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

Czy jest ktoś, kto może mi pomóc?

ahmad
źródło
Po sprawdzeniu moich plików .txt pierwsza i druga linia pliku to nie lon i lat, ale piksel i linia. Pozycja lon i lat jest trzecią i czwartą linią. Czy możemy przetworzyć dane, chociaż pierwszy i drugi z danych .txt nie jest lon i lat?
ahmad

Odpowiedzi:

0

Jest trochę niejasne, co próbujesz zrobić (na przykład, czy próbujesz przetwarzać pliki w formacie 2012.mm.dd lub 2012.mmdd? (Masz oba wymienione).

Możesz „wyrzeźbić” łańcuch w bashu za pomocą {$ n: x: y}, gdzie x jest pozycją początkową, a y jest liczbą znaków, więc coś takiego [z poprawkami do przypadku użycia] powinno działać:

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

Spowoduje to przetworzenie plików txt i przeanalizowanie parametru -G20121202.grd, przekierowanie danych wyjściowych do nowego pliku tekstowego.

Widzieć tutaj po więcej informacji na temat manipulacji ciągiem w bashu.

davidgo
źródło
format .txt dane to: pixel - linia - lon - lat - present - chla - sst. Właściwie dane .grd to dane SSHA. Chcę więc przekonwertować dane .txt na: pixel - line - lon - lat - present - chla - sst - ssha. Dziękuję Ci.
ahmad