unix 如何使用echo命令打印文本文件的内容?

h7wcgrx3  于 2023-06-29  发布在  Unix
关注(0)|答案(6)|浏览(199)

我想弄清楚这个命令的用法:

echo < a.txt

根据教科书,它应该重定向程序标准输入。现在我将a.txt重定向到echo,但它没有打印文件的内容,而是打印出一个空行!
欣赏任何人表现出这种行为。

eblbsuwk

eblbsuwk1#

在Unix中,我相信你所要做的就是,假设你有一个不太大的文件:cat <filename>
不需要echo

ffscu2ro

ffscu2ro2#

使用下面的命令来打印文件内容使用echo,

echo `cat file.txt`

在这里,你也可以得到所有的回显功能的好处,我最喜欢删除尾随换行符,(以获得与缓冲区完全相同的哈希值,而不是文件)

echo -n `cat file.txt` | sha256sum
ev7lccsx

ev7lccsx3#

cat命令将显示带有CR或return的文件:

$ cat names.txt 
Homer
Marge
Bart
Lisa
Maggie

你可以使用echo命令和cat作为命令替换。但是,它将替换CR或返回(unix:\n)带空格:

$ echo $(cat names.txt)
Homer Marge Bart Lisa Maggie

如果您想通过管道进行进一步的数据处理,这可能是一个有趣的特性。例如,用sed命令替换空格。

mzsu5hc0

mzsu5hc04#

**echo命令不接受标准输入(STDIN)的数据,只对传入的参数起作用

因此,如果我们将数据从标准输入传递到echo,例如对于<|,它将被忽略,因为echo只使用参数。

可以通过echoxargs命令一起使用来更改,该命令用于调用参数为标准输入数据的命令。

例如:

xargs echo < file.txt

cat file.txt | xargs echo
30byixjq

30byixjq5#

您可以使用

type test.txt
pause
9cbw7uwe

9cbw7uwe6#

echo不读取标准输入,所以在这种情况下,重定向是没有意义的。
echo "Hello" | echo
要打印出文件,只需使用下面的命令
echo "$(<a.txt )"

相关问题