Страница 1 из 1

[GRASS/Советы] Составление списка карт по условию

Добавлено: 04 сен 2008, 11:28
KolesovDmitry
Составление списка карт по условию.
Часто требуется составить список карт из некоторого проекта GRASS, выбранных по определенному условию, которому должны удовлетворять названия карт. Этот список впоследствии может использоваться в пакетных командах обработки (например, отобразить на экране все карты из списка, считать информацию с карт в заданной точке и т.д.).
Пусть, например, нужно выбрать растровые карты, названия которых оканчиваются на единицу. Составить подобный список можно несколькими способами:

а) Можно это сделать используя стандартные циклы shell:

Код: Выделить всё

GRASS> names=""; for rastr in $(g.mlist type=rast pattern=*1); do  names=$(echo $names,$rastr); done
В результате в переменной names будут лежать названия карт, разделенные запятыми.

б) Можно создать конвеер из команд обработки текста (например, для того, чтобы отсортировать названия):

Код: Выделить всё

GRASS> names=`g.mlist type=rast pat="*1" | sort | tr '\n' ','| sed 's+,$++g'`
Подробнее см.
g.mlist
man sort
man tr
man sed