我们有以下两个文件:
t1.txt
1
2
3
t2.txt
a
s
d
我可以使用:
paste -d"," t1.txt t2.txt > result.txt
并输出 result.txt
1,a
2,s
3,d
哪个是完美的,但我想在下面做:
paste -d"," t1.txt t2.txt > t1.txt
我希望 t1.txt 与 result.txt 相同,但它如下所示,不是我需要的:
,a
,s
,d
我可以将 result.txt 重命名为 t1.txt ,但想知道是否有更好的方法?
注意:
paste
,只要我们避免创建 result.txt 等临时文件,就可以是任何内容。答案 0 :(得分:5)
print(len(accountListBox.all_selected_options))
实用程序仅为此任务创建:
sponge
paste -d, t1.txt t2.txt | sponge t1.txt
是sponge
包的一部分。在类似debian / ubuntu的系统上,运行moreutils
。
apt-get install moreutils
如果一个人无法访问fname=$(mktemp) && paste -d, t1.txt t2.txt >>"$fname" && mv "$fname" t1.txt
或mktemp
,则可以使用:
sponge
您可以选择放置临时文件的位置。在上文中,我们将其放在用户的主目录paste -d, t1.txt t2.txt > ~/result$$.txt && mv ~/result$$.txt t1.txt
中,因为这样可以避免将文件放在~/
等目录中所带来的安全问题。
/tmp
是进程ID。预计至少在整个过程的生命周期中这是独一无二的。
答案 1 :(得分:3)
第一个文件消失的原因是:
schema-request
请参阅bash手册inder https://www.gnu.org/software/bash/manual/bash.html#Executing-Commands
中的第3.7.1节