我在循环中生成了一个临时文件o2.csv。我想剪切它的第二列并将其粘贴到另一个文件g3temp.csv。
paste<(cut -f 2 o2.csv) g3temp.csv> g3temp.csv
如果对某个新文件进行写入,则此命令会生成正确的输出:
paste<(cut -f 2 o2.csv)g3temp.csv> g3new.csv
为什么对同一文件的写入没有给出正确的结果?
答案 0 :(得分:2)
这在shell中是不可能的。运行该命令时,>
会立即截断该文件。
最简单的方法是使用临时文件:
paste <(cut -f 2 o2.csv) g3temp.csv > tmp && mv tmp g3temp.csv
使用&&
表达式,我们确保第二个命令将在前者成功完成时执行。