Linux 剪切删除我的文件的所有内容
当我在linux中使用Linux 剪切删除我的文件的所有内容,linux,shell,unix,cut,Linux,Shell,Unix,Cut,当我在linux中使用cut命令并将输出重定向到同一个文件时,它似乎删除了文件的内容。我正在做的是: cut -d " " -f 1 file1.txt > file1.txt 我的目标是从文件中删除除第一列以外的所有列,并保存对正在使用的文件所做的更改。但当我这样做,打开我的文件,我留下了一个空白文件。但是,当我指定一个不同的文件时,该命令似乎工作得非常好 当我跑步时: cut{some command}FILE1.txt>FILE2.txt 这似乎很有效 是否有一种方法可以指定希望
cut
命令并将输出重定向到同一个文件时,它似乎删除了文件的内容。我正在做的是:
cut -d " " -f 1 file1.txt > file1.txt
我的目标是从文件中删除除第一列以外的所有列,并保存对正在使用的文件所做的更改。但当我这样做,打开我的文件,我留下了一个空白文件。但是,当我指定一个不同的文件时,该命令似乎工作得非常好
当我跑步时:
cut{some command}FILE1.txt>FILE2.txt
这似乎很有效
是否有一种方法可以指定希望将
cut
命令中的更改覆盖到当前工作文件中 创建带有所需更改的临时文件,然后将其重命名为目标文件名:
cut -d " " -f 1 file1.txt > file1.txt.temp
mv file1.txt.temp file1.txt
在执行
切割之前,外壳必须分叉并打开stdin
和stdout
。毫不奇怪,打开文件进行覆盖(在文件被dup2
'd复制到stdout
之前)会删除所有内容。这发生在cut
读取其stdin
之前