问题描述
我想将 2 个文件合并或合并在一起。使用 exec cat 还是 append 更好?
以下是我的 cat 脚本,但似乎不起作用。
set infile [open "$dir/1.txt" w+]
puts $infile "set a 1"
puts $infile "set b 2"
exec /bin/cat "$dir/1.txt $dir2/ABC1.sh" > final.sh
close $infile
解决方法
我敢打赌“似乎不起作用”意味着您只能在 $dir2/ABC1.sh
中看到 final.sh
的内容(或者可能看到您写给 {{1} },并非所有数据)。如果是这样,您就会遇到缓冲问题,尝试在像您这样关闭或刷新 $fir1/1.txt
之前读取 $dir/1.txt
。数据尚未写入底层文件。
为了将多个文件连接成一个,而不是依赖于像 infile
这样的外部程序(你如何引用 cat
的参数也可能存在问题......),我会使用来自 tcllib 的 fileutil 模块的各种例程以纯 exec
来完成:
tcl
如果您有大文件并且不想将它们全部保存在内存中(或者不想/无法安装 tcllib),chan copy
也可以:
package require fileutil
fileutil::writeFile final.sh [fileutil::cat -- $dir/1.txt $dir2/ABC1.sh]