aboutsummaryrefslogtreecommitdiff
path: root/sh/shrc.d/hgrep.sh
diff options
context:
space:
mode:
authorTom Ryder <tom@sanctum.geek.nz>2016-08-17 17:38:45 +1200
committerTom Ryder <tom@sanctum.geek.nz>2016-08-17 17:38:45 +1200
commit67afb66eb1a2e7a1f7c912bdeec002de7b25d91d (patch)
tree0701c5da159452f229eb50a8b1f99387b31a01fe /sh/shrc.d/hgrep.sh
parentOnly pull if rebase possible (diff)
downloaddotfiles-67afb66eb1a2e7a1f7c912bdeec002de7b25d91d.tar.gz
dotfiles-67afb66eb1a2e7a1f7c912bdeec002de7b25d91d.zip
Move simple Bash/pdksh functions into POSIX sh
Have only translated the scripts that translate readily into POSIX sh for now. More complex stuff like that bd/pd/sd/ud navigation for Bash doesn't port as easily, mostly because there isn't an analogue for the "local" keyword in POSIX.
Diffstat (limited to 'sh/shrc.d/hgrep.sh')
-rw-r--r--sh/shrc.d/hgrep.sh16
1 files changed, 16 insertions, 0 deletions
diff --git a/sh/shrc.d/hgrep.sh b/sh/shrc.d/hgrep.sh
new file mode 100644
index 00000000..b6143b37
--- /dev/null
+++ b/sh/shrc.d/hgrep.sh
@@ -0,0 +1,16 @@
+# Search shell history file for a pattern. If you put your whole HISTFILE
+# contents into memory, then you probably don't need this, as you can just do:
+#
+# $ history | grep PATTERN
+#
+hgrep() {
+ if [ "$#" -eq 0 ] ; then
+ printf >&2 'hgrep: Need a pattern\n'
+ exit 2
+ fi
+ if ! [ -n "$HISTFILE" ] ; then
+ printf >&2 'hgrep: No HISTFILE\n'
+ exit 2
+ fi
+ grep "$@" "$HISTFILE"
+}