Bash 将两个文件重定向到标准输入

Bash 将两个文件重定向到标准输入,bash,redirect,sh,Bash,Redirect,Sh,有几个unix命令设计用于对两个文件进行操作。通常,此类命令允许使用一个破折号代替文件名,从标准输入中读取其中一个“文件”的内容 我刚刚遇到一个似乎允许从标准输入读取两个文件的方法: comm -12 <(sort file1) <(sort file2) comm-12这是一个标准的Bash扩展Bash、kornshell(不管怎样,还是ksh93)和zshell都支持。这些文件在实用程序中显示为文件。试试这个: $ bash -c 'echo <(echo)' /dev/

有几个unix命令设计用于对两个文件进行操作。通常,此类命令允许使用一个破折号代替文件名,从标准输入中读取其中一个“文件”的内容

我刚刚遇到一个似乎允许从标准输入读取两个文件的方法:

comm -12 <(sort file1) <(sort file2)

comm-12这是一个标准的Bash扩展<代码>Bash、kornshell(不管怎样,还是ksh93)和zshell都支持。这些文件在实用程序中显示为文件。试试这个:

$ bash -c 'echo <(echo)'
/dev/fd/63
$ ksh -c 'echo <(echo)'
/dev/fd/4
$ zsh -c 'echo <(echo)'
/proc/self/fd/12

$bash-c'echo就是这样——进程替换!我花了很多时间在谷歌上搜索关于重定向的信息,但我只是取错了名字。谢谢。这有帮助。确认ksh88(在AIX7.1上)不支持这种类型的进程替换。感谢甘尼什的盛宴。
$ bash -c 'echo <(echo)'
/dev/fd/63
$ ksh -c 'echo <(echo)'
/dev/fd/4
$ zsh -c 'echo <(echo)'
/proc/self/fd/12