|
@@ -4,7 +4,7 @@
|
|
|
#
|
|
|
# MODULE: g.mlist
|
|
|
# AUTHOR(S): Huidae Cho - grass4u@gmail.com
|
|
|
-# PURPOSE: applied regular expression and wildcard to g.list
|
|
|
+# PURPOSE: Lists data files using basic regular expressions and wildcards
|
|
|
# COPYRIGHT: (C) 2000 by the GRASS Development Team
|
|
|
#
|
|
|
# This program is free software under the GNU General Public
|
|
@@ -14,16 +14,16 @@
|
|
|
#############################################################################
|
|
|
|
|
|
#%Module
|
|
|
-#% description: Apply regular expressions and wildcards to g.list
|
|
|
-#% keywords: general, map management
|
|
|
+#% description: Lists data files using basic regular expressions and wildcards.
|
|
|
+#% keywords: general, map management
|
|
|
#%End
|
|
|
#%flag
|
|
|
#% key: r
|
|
|
-#% description: Use regular expression instead of wildcard
|
|
|
+#% description: Use basic regular expressions instead of wildcards
|
|
|
#%end
|
|
|
#%flag
|
|
|
#% key: m
|
|
|
-#% description: Print mapset name
|
|
|
+#% description: Print mapset names
|
|
|
#%end
|
|
|
#%option
|
|
|
#% key: type
|
|
@@ -66,19 +66,20 @@ do_list() {
|
|
|
MAPSET=""
|
|
|
fi
|
|
|
|
|
|
- LC_ALL=C g.list type="$type" mapset="$mapset" \
|
|
|
- | grep -vE '^-+$|files available' \
|
|
|
- | grep -vi "mapset" \
|
|
|
- | sed 's/ */\
|
|
|
-/g' \
|
|
|
- | grep . \
|
|
|
- | grep -- "$search" \
|
|
|
- | sort \
|
|
|
- | sed -e "s/$/$MAPSET/"
|
|
|
+ LC_ALL=C g.list type="$type" mapset="$mapset" |
|
|
|
+ sed '
|
|
|
+ /^--*$/d;
|
|
|
+ /files available/d;
|
|
|
+ /^$/d;
|
|
|
+ s/ */\
|
|
|
+/g;' |
|
|
|
+ sed "
|
|
|
+ /$search/!d;
|
|
|
+ s/$/$MAPSET/;"
|
|
|
}
|
|
|
|
|
|
|
|
|
-if test "$GISBASE" = ""; then
|
|
|
+if [ "$GISBASE" = "" ] ; then
|
|
|
echo "You must be in GRASS GIS to run this program." >&2
|
|
|
exit 1
|
|
|
fi
|
|
@@ -96,47 +97,35 @@ mapset="$GIS_OPT_MAPSET"
|
|
|
sep="$GIS_OPT_SEP"
|
|
|
search="$GIS_OPT_PATTERN"
|
|
|
|
|
|
-#list all datatypes
|
|
|
-types=`echo $type | sed 's/,/ /g'`
|
|
|
-for itype in $types
|
|
|
-do
|
|
|
- if [ "$itype" = "all" ] ; then
|
|
|
- type="rast,rast3d,oldvect,vect,asciivect,icon,labels,sites,region,region3d,group,3dview"
|
|
|
- fi
|
|
|
-done
|
|
|
-
|
|
|
-if [ -z "$sep" ] ; then
|
|
|
-# echo using "\n" as separator
|
|
|
- sep=""
|
|
|
+# list all datatypes
|
|
|
+if echo $type | grep -qE '(^|,)all(,|$)'; then
|
|
|
+ type="rast,rast3d,oldvect,vect,asciivect,icon,labels,sites,region,region3d,group,3dview"
|
|
|
fi
|
|
|
|
|
|
-
|
|
|
if [ $GIS_FLAG_R -ne 1 ] ; then
|
|
|
-# echo wildcard
|
|
|
- search="^`echo \"$search\" | sed 's/\./\\\\./g; s/?/./g; s/*/.*/g; s/|/$|^/g'`$"
|
|
|
-#else
|
|
|
-# echo regex, as is
|
|
|
+ # wildcard
|
|
|
+ search="^`echo \"$search\" | sed 's/\./\\\\./g; s/?/./g; s/*/.*/g; s/|/$\\\\|^/g'`$"
|
|
|
fi
|
|
|
+#echo $search
|
|
|
|
|
|
start=""
|
|
|
if [ -z "$mapset" ] ; then
|
|
|
-# echo using current mapset
|
|
|
+ # using current mapset
|
|
|
mapsets=`g.mapsets -p`
|
|
|
else
|
|
|
- mapsets=`echo $mapset | sed 's/,/ /g'`
|
|
|
+ mapsets=`echo $mapset | tr , ' '`
|
|
|
fi
|
|
|
|
|
|
for mapset in $mapsets
|
|
|
do
|
|
|
do_list
|
|
|
-done | (
|
|
|
- if [ "$sep" != "" ] ; then
|
|
|
- tr '\n' "$sep" | sed 's/.$//'
|
|
|
- echo ""
|
|
|
- else
|
|
|
- cat
|
|
|
- fi
|
|
|
- )
|
|
|
+done | sort | (
|
|
|
+ if [ "$sep" != "" ] ; then
|
|
|
+ tr '\n' "$sep" | sed 's/.$/\
|
|
|
+/'
|
|
|
+ else
|
|
|
+ cat
|
|
|
+ fi
|
|
|
+)
|
|
|
|
|
|
exit 0
|
|
|
-
|