在bash中,有没有一种方法可以将多个管道连接到一个进程?
例如,如果我想在使用在bash中,有没有一种方法可以将多个管道连接到一个进程?,bash,sed,pipe,Bash,Sed,Pipe,例如,如果我想在使用sed对两个文件进行预处理后,对两个文件执行diff,有没有办法在没有临时文件的情况下执行此操作 我尝试过类似的方法,但(如我所料)没有成功: (sed "$expr" file1; sed "$expr" file2) | diff - - 我在想可能有一种方法可以显式地创建管道或其他东西。尝试这样做: diff <(sed "$expr" file1) <(sed "$expr" file2) 见 谢谢,这正是我想要的!在cmd1中,提出了一个好问题。在
sed
对两个文件进行预处理后,对两个文件执行diff
,有没有办法在没有临时文件的情况下执行此操作
我尝试过类似的方法,但(如我所料)没有成功:
(sed "$expr" file1; sed "$expr" file2) | diff - -
我在想可能有一种方法可以显式地创建管道或其他东西。尝试这样做:
diff <(sed "$expr" file1) <(sed "$expr" file2)
见谢谢,这正是我想要的!在
cmd1中,提出了一个好问题。在cmd2 | cmd1
中,cmd2
可以在cmd1
退出后继续,只要它不尝试写入关闭的管道。进程替换可能也会起到类似的作用。如果您发布文件,我们可能会帮助您制作一个awk命令来完成所有操作。
cmd1 2> >(cmd2)