[GRASS/Советы] Составление списка карт по условию
Добавлено: 04 сен 2008, 11:28
Составление списка карт по условию.
Часто требуется составить список карт из некоторого проекта GRASS, выбранных по определенному условию, которому должны удовлетворять названия карт. Этот список впоследствии может использоваться в пакетных командах обработки (например, отобразить на экране все карты из списка, считать информацию с карт в заданной точке и т.д.).
Пусть, например, нужно выбрать растровые карты, названия которых оканчиваются на единицу. Составить подобный список можно несколькими способами:
а) Можно это сделать используя стандартные циклы shell:
В результате в переменной names будут лежать названия карт, разделенные запятыми.
б) Можно создать конвеер из команд обработки текста (например, для того, чтобы отсортировать названия):
Подробнее см.
g.mlist
man sort
man tr
man sed
Часто требуется составить список карт из некоторого проекта GRASS, выбранных по определенному условию, которому должны удовлетворять названия карт. Этот список впоследствии может использоваться в пакетных командах обработки (например, отобразить на экране все карты из списка, считать информацию с карт в заданной точке и т.д.).
Пусть, например, нужно выбрать растровые карты, названия которых оканчиваются на единицу. Составить подобный список можно несколькими способами:
а) Можно это сделать используя стандартные циклы shell:
Код: Выделить всё
GRASS> names=""; for rastr in $(g.mlist type=rast pattern=*1); do names=$(echo $names,$rastr); done
б) Можно создать конвеер из команд обработки текста (например, для того, чтобы отсортировать названия):
Код: Выделить всё
GRASS> names=`g.mlist type=rast pat="*1" | sort | tr '\n' ','| sed 's+,$++g'`
g.mlist
man sort
man tr
man sed