On 14Apr2019 20:06, felixs <besteck...@gmail.com> wrote:
fiddling with sed in the mutt mailing bash script

Nothing you're doing requires bash. Just use /bin/sh - "the shell" - it is portable; it _is_ bash on many linux systems (though by no means all), and it is _always_ present on any POSIX system. You're writing Bourne shell scripts, not GNU's particular dialect.

I am writing I do not find
a way to make sed read all files of a directory from standard in?
I redirected standard input to a file and try to 'point' sed to all the
files of the directory which is the spoolfile (maildir), like so:

sed -ne '/^From: $EMAIL_ADDRESS/p ; /Subject: $SUBJECT/p' \
< /path/to/spoolfile

If I specify a message file on the command line it works. If I try to
make sed take its input from ALL the files in the directory using the
above syntax it does not. I use, for instance,

sed -ne '/^From: $EMAIL_ADDRESS/p ; /Subject: $SUBJECT/p' \
< path/to/spoolfile/*    # error: ambiguous redirection
or
< path/to/spoolfile/'1'*  #given that all msg files start with '1'
or variations of that,
it always fails with the above error messages.

Think about it. You're invoking sed _once_. Its input can come from only one file.

So invoke sed many times:

 for spoolfile in path/to/spooldir/*
 do
   sed ..... < "$spoolfile"
 done

I searched in the documentation of sed (info sed)

The documentation should be in "man sed". But the GNU folks like to reader than fairly useless and shove the useful stuff sideways.

Regardless, redirection is part of the shell, and not part of sed, so what you want won't be there (unless there's some example that just happens to match what you're trying to do).

Have a read of "man sh". Everything is in there, in one place.

Cheers,
Cameron Simpson <c...@cskk.id.au>

Reply via email to