[Surfraw-devel] Patch: use awk instead of sed for listing elvi
Kyle Isom
kyle at imap.cc
Mon Sep 14 04:31:53 UTC 2015
Hello,
In response to Keith's earlier email, I swapped out awk for sed in
the list_elvi function in surfraw. The awk syntax for doing this is
more portable across different implementations of awk than the
equivalent sed expression.
Tested on OS X 10.10.5:
$ awk --version
GNU Awk 4.1.3, API: 1.1
...
$ mawk -W version
mawk 1.3.4 20141027
Test on Debian GNU/Linux 8.2 (jessie):
$ gawk --version
GNU Awk 4.1.1, API: 1.1 (GNU MPFR 3.1.2-p3, GNU MP 6.0.0)
$ mawk -W version
mawk 1.3.3 Nov 1996, Copyright (C) Michael D. Brennan
$ original-awk --version
awk version 20121220
Test on OpenBSD 5.7 GENERIC.MP#3 i386:
$ awk -V
awk version 20110810
---
surfraw.IN | 6 +++---
1 file changed, 3 insertions(+), 3 deletions(-)
diff --git a/surfraw.IN b/surfraw.IN
index 0de3c96..8471216 100755
--- a/surfraw.IN
+++ b/surfraw.IN
@@ -323,9 +323,9 @@ w3_parse_option_hook () {
}
list_elvi() {
- local dir="$1"
- sed -n 's/^.*elvis:[ ]\+\(.*\)$/\1/p' $(find "$dir" ! -type d ! -type l ! -name '*~' | sort)
- for script in $(find "$dir" ! -type d -type l | sort) ; do
+ local_dir="$1"
+ awk '/^#[ ]+elvis:[ ]+/{ sub("^# elvis: ",""); print $0; }' $(find "$local_dir/" ! -type d ! -type l ! -name '*~' | sort | xargs)
+ for script in $(find "$local_dir/" ! -type d -type l | sort) ; do
printf '%-16s--> %s\n' $(basename "$script") $(basename $(readlink "${script}"))
done
}
Cheers,
Kyle
More information about the Surfraw-devel
mailing list