小智 69
听起来tee命令会做你想做的事。
关键是用
>( )
Run Code Online (Sandbox Code Playgroud)
用于进程替换。使用tee,使用以下模式:
tee >(proc1) >(proc2) >(proc3) | proc4
Run Code Online (Sandbox Code Playgroud)
因此,如果您想将 的输出ls用作两个不同grep程序的输入,请将每个程序的输出保存grep到不同的文件,并将所有结果通过 管道传输less,请尝试:
ls -A | tee >(grep ^[.] > hidden-files) >(grep -v ^[.] > normal-files) | less
Run Code Online (Sandbox Code Playgroud)
的结果ls -A将被“输送”到两个greps 中。该文件hidden-files将包含第一个输出的内容grep,normal-files并将包含第二个输出的结果grep。 所有文件都将显示在寻呼机中 编辑:你看到的less。less是完全相同的输出的ls -A,而不是结果grep秒。如果您想将输出修改ls -A为less, (例如交换顺序,以便在隐藏文件之前列出正常文件),请尝试以下操作:
ls -A | tee >(grep ^[.]) >(grep -v ^[.]) >/dev/null | less
Run Code Online (Sandbox Code Playgroud)
如果没有>/dev/null,greps的输出将附加到 的输出ls -A而不是替换它。
使用“三通”。
例子:
grep someSearchString someFile | tee /dev/tty | wc -l > grepresult
Run Code Online (Sandbox Code Playgroud)
这会将 grep 命令的输出发送到终端和wc(其输出又被重定向到文件 grepresult)。
“Tee”在维基百科文章tee (command) 中有解释。核心是:“tee 命令读取标准输入,然后将其内容写入标准输出并同时将其复制到指定的文件或变量中。”。
| 归档时间: |
|
| 查看次数: |
20366 次 |
| 最近记录: |