Unix 带回声的管道猫

Unix 带回声的管道猫,unix,Unix,我试图了解管道在Unix中是如何工作的 假设我有一个名为a.txt的文本文件,其中包含内容。 如果我执行“cat a.txt | echo”,则不会输出任何内容。 我希望它能回显a.txt的每一行 另一方面,如果我做了cata.txt | grep'd', 它将输出以“d”开头的所有行 我的理解是cat将a.txt的内容输出到stdout,然后管道将该输出发送到grep'd'的输入,但是grep将一个文件名作为输入,那么它是如何工作的(如果grep被给予非文件输入) 如果您不想进入文本编辑器并想

我试图了解管道在Unix中是如何工作的

假设我有一个名为a.txt的文本文件,其中包含内容。 如果我执行
“cat a.txt | echo”
,则不会输出任何内容。 我希望它能回显a.txt的每一行

另一方面,如果我做了
cata.txt | grep'd'
, 它将输出以“d”开头的所有行


我的理解是cat将a.txt的内容输出到stdout,然后管道将该输出发送到grep'd'的输入,但是grep将一个文件名作为输入,那么它是如何工作的(如果grep被给予非文件输入)

如果您不想进入文本编辑器并想将一段数据保存在文件中,您可以使用

回显“somePassword”| cat>.myPasswordFile

您已通过管道将echo的输出传输到cat,cat已将其保存到一个文件中

ls | cat>dirlist.txt 将目录的输出发送到名为dirlist.txt的文件

这是一个示例,其中echo将管道连接到tee命令,以将某些内容附加到另一个文件的末尾


echo“ServerName 127.0.0.1”| sudo tee-a/etc/apache2/conf available/server name.conf

如果您不想进入文本编辑器并想将一段数据保存在可以使用的文件中

回显“somePassword”| cat>.myPasswordFile

您已通过管道将echo的输出传输到cat,cat已将其保存到一个文件中

ls | cat>dirlist.txt 将目录的输出发送到名为dirlist.txt的文件

这是一个示例,其中echo将管道连接到tee命令,以将某些内容附加到另一个文件的末尾


echo“ServerName 127.0.0.1”| sudo tee-a/etc/apache2/conf available/server name.conf

grep
如果将文件名作为第二个参数提供,则会采用该文件名。如果没有,它将读取其
stdin
echo
从不读取
stdin
或任何相关文件。它只是附和了它的论点。回显其输入的程序是
cat
。如果您不向
cat
提供参数,它将读取
stdin
,因此
cat a.txt | cat
将执行与
cat a.txt
相关的相同操作:
grep
将文件名作为第二个参数。如果没有,它将读取其
stdin
echo
从不读取
stdin
或任何相关文件。它只是附和了它的论点。回显其输入的程序是
cat
。如果不向
cat
提供参数,它将读取
stdin
,因此
cat a.txt | cat
将执行与
cat a.txt
相关的相同操作: