0

我是 unix 新手,我在使用 cat 命令时正在玩命令,我发现了意外的输出。

我有。

test and the content of test is
line 1
test2 and the content of test2 is
line 2

这是我输入的。

cat test2>>test>test3

结果是

line 2

所以我的问题是为什么不是

line 1
line 2

这段代码不应该将 test 与 test2 连接起来,然后将其添加到 test3 中吗?

4

3 回答 3

2

当您多次重定向程序的标准输出流时,例如

cat test2 >>test >test3

重定向是按照您编写的顺序设置的。在这种情况下,shelltest以附加模式打开并将其设置为cat. 然后它test3以覆盖模式打开并将其设置为标准输出,覆盖先前的重定向。

如果test可以打开,整个命令的净效果是一样的:

cat test2 >test3

也就是说,line 2写入test3. 如果你想连接 test 和 test2 到 test3 你应该使用:

cat test test2 >test3

或分两步完成:

cat test2 >>test
cat test >test3
于 2013-11-09T12:28:51.497 回答
0

你可以这样尝试:-

cat test1.txt test2.txt > test3.txt

另请检查什么是 Linux cat 命令?

如果你想检查 Cat 命令是如何工作的,那么你可以查看这个教程

使用 >> 可确保保留 bigcats 的任何先前内容。panther 的内容被附加到 bigcats 中。如果你在这里使用 > 操作符,你会用 panther 的内容替换 bigcats 的内容。当您希望添加到现有文件的末尾时,请始终使用 >>。

于 2013-11-09T12:13:27.590 回答
0

试试这个并应用到你的:

file1
Hello

file2
Goodbye

cat file1 file2 > fileresult

fileresult
Hello
Goodbye
于 2013-11-09T12:14:03.097 回答