User's manual. Section 1.

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


User's manual. Section 1.