RUNFOR(1): run commands for input lines matching expressions
USAGE
usage: runfor [-Dnuv] {expr cmd}
-D: debug
-n: dry run (don't run any command)
-u: don't use unix out
-v: verbose
DESCRIPTION
Runfor takes pairs of expressions and commands as arguments and reads input lines. For each input line it runs the command with the first matching expression. Expressions are written like in sre(2). The command strings given may contain back-references of the form\0
, \1
, ... that are
replaced with the matched string or substring.
If further input lines matching the expression for a given command are received while the command is running, they are discarded.
EXAMPLE
-
Receive OSX events and (1) print those that contain
"
apple
" and (2) for paths of the form
"/u/*/...
" print the second component of the
path.
% osev | runfor apple 'echo \0' '^/u/[^/]+/' 'echo \1'
Run Lgo fmt
on directories under
/u/gosrc/
as they have their files changed:
% osenv | runfor '^/u/gosrc/.*' 'Lgo fmt \0'
SOURCE
/zx/sys/src/clive/cmd/runfor