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?
linux
command-line
bash
ahmad
źródło
źródło
Odpowiedzi:
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ć:
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.
źródło