The reported problem is that the strings command does not read from its
standard input. The command you tried is the one that Janis said
works. `<(zcat ./cat.gz)` will expand to something like "/dev/fd/63",
which is passed as a file name argument.
But on my system, the strings command will read from stdin, though the
synopsis on the man page doesn't directly say so:
SYNOPSIS
strings [-afovV] [-min-len]
[SNIP]
[--help] [--version] file...
Using "file..." rather than "[file]..." implies that there must be at
least one file name argument, but that appears to be inaccurate:
$ echo hello | strings
hello
$
The DESCRIPTION section does talk about strings reading from stdin (and
changing behavior)
The strings command I'm using is part of GNU binutils 2.34. Perhaps
other implementations behave differently.
The strings command can be configured either to display all printable
sequences in a file or to display only those sequences that are
in loadable, initialized data sections. The latter might be more
difficult when reading from stdin rather than from a seekable file.
--
Keith Thompson (The_Other_Keith)
Keith.S.T...@gmail.com
Working, but not speaking, for Philips
void Void(void) { Void(); } /* The recursive call of the void */