在一次调用中将多个文件复制到一个文件中(追加、合并),无需 shell 重定向?

在一次调用中将多个文件复制到一个文件中(追加、合并),无需 shell 重定向?

我正在寻找某种可以使用的命令,将多个文件复制/附加到一个文件中;但没有shell 重定向(我想在 中尝试一下call_usermodehelper,请参阅类似的问题call_usermodehelper / call_usermodehelperpipe用法 - VoidCC)。我知道我还可以使用:

cat file1 file2 > file.merge

...但这需要 shell 重定向。

到目前为止我的发现:

  • 无法使用cat,因为它的默认 stdout 输出无法重新定义(通过命令行参数) - 除此之外,它是 shell 重定向
  • 无法在单次调用中使用dd,因为它只能接受一个(且只有一个)if=输入文件参数
  • 无法使用cp,因为它将单独处理多个文件,并且无法将它们全部复制“合并”到一个位置

那么 - 有没有任何标准工具可以让我做类似的事情(伪代码):

copytool -i file1 -i file2 -o file.merge

...这样输出file.merge表示file2附加到file1内容中?

答案1

你可以做:

sed -n wfile.merge file1 file2

或者:

awk '{print > "file.merge"}' file1 file2

或者:

sh -c 'cat file1 file2 > file.merge'

(请注意,根据实现的不同,前两个可能无法与二进制文件正常工作)。

相关内容