3

例如,如果我想在用diff预处理两个文件后执行两个文件中的一个sed,有没有办法在没有临时文件的情况下做到这一点?

我已经尝试过这样的事情并且(如我所料)它没有用:

(sed "$expr" file1; sed "$expr" file2) | diff - -

我在想可能有一种方法可以显式地创建管道或其他东西。

4

1 回答 1

5

尝试这样做:

diff <(sed "$expr" file1) <(sed "$expr" file2)

这使用Process Substitution<( )替换为临时文件名。写入或读取该文件会导致字节通过管道传输到内部的命令。常与文件重定向结合使用:

cmd1 2> >(cmd2)


http://mywiki.wooledge.org/ProcessSubstitution
http://mywiki.wooledge.org/BashFAQ/024

于 2013-09-25T18:41:11.243 回答