有没有办法在Linux中将参数分组到命令中?

时间:2016-05-09 12:37:00

标签: linux bash

我知道在Linux中我可以这样做:

$> cat file.txt > total.txt

我确实理解以下内容是一样的:

$> cat < file.txt > total.txt

因为cat基本上将stdin中的任何内容复制到stdout中

所以我想知道以下内容:

$> cat file1.txt file2.txt > total.txt

可以这样做:

$> cat < file1.txt file2.txt > total.txt

但事实证明只有file1.txt被重定向到cat 那么是否有一种方式“像括号”来分组cat或任何其他命令的参数? 如:

$> cat < (file1.txt file2.txt) > total.txt

2 个答案:

答案 0 :(得分:0)

如果您需要将一组文件的内容作为输入发送到读取标准输入的命令,您可以使用管道,例如:

cat file1.txt file2.txt file3.txt | wc -l

假设您有一些只知道如何读取文件的实用程序,但不能使用标准输入。你可以这样做:

not-stdin-smart-util <(cat file1.txt file2.txt file3.txt)

在这种情况下,cat可以替换为生成标准输出的任何内容,无论是否使用文件。正如评论中所观察到的,此方法对搜索操作有限制。如果实用程序正在使用mmap()读取文件,它也将无法工作。

答案 1 :(得分:0)

如果只有txt文件

cat * .txt&gt; OUTPUT_FILE

使用此限制?或者我弄错了你?