根据我的理解,Linux中的管道操作符接受一个命令的标准输出,并将其通道化为下一个命令的标准输入。但我遇到了一个异常现象。 我试图在标准输出中获取文件的内容,如下所示。
cat file1
显示内容。让我们说内容是另一个名为file2
的文件。
现在我想显示file2
。
因此,为了利用管道运算符,我试图执行如下
cat file1 | cat
第一个cat命令应该管道输出(这里" file2")。后续命令中的cat必须从标准输入接受它(此处值为" file2")并打印file2
的内容。
但它显示" file2"只代替其内容。
答案 0 :(得分:1)
你应该做什么:
cat `cat file1`
来自man cat
:
将FILE(或标准输入)连接到标准输出。
换句话说,如果有一个文件名作为参数提供,它会将其内容显示给标准输出,否则它只会重定向到标准输出的标准输入。
在您的情况下,从标准输入读取文件名,它被解释为连接到标准输出的字符串。
反引号用于注入命令的标准输出,即:
cat `cat file1`
相当于
cat file2
将file2内容转储到标准输出。
答案 1 :(得分:1)