使用cmd在.txt文件中插入文本

时间:2016-10-27 13:46:23

标签: linux text cmd

所以,我想在.txt中插入测试,但是当我尝试时 type file1.txt >> file2.txt 并使用cygwinsort file1 | uniq >> sorted对其进行排序,它会将其放在文件的末尾。但我想把它写到文件的开头。我不知道这是否可以在cmd中使用,如果不是,我也可以在linux终端中执行此操作。 我需要使用特殊标志或操作符吗?

感谢Davin

编辑:文件本身(我写的文件)大约5GB,所以每次我想要改变任何东西时我都要写5GB文件

1 个答案:

答案 0 :(得分:0)

无法写入文件的开头。您只能使用提供的内容替换文件内容或将其附加到文件末尾。因此,如果您需要在sorted文件前面添加已排序的输出,则必须这样做:

mv sorted sorted.old
sort file1 | uniq > sorted
cat sorted.old >> sorted
rm sorted.old

这不是shell的限制,而是几乎所有现有操作系统的文件API。文件的大小只能在最后更改,因此您可以增加它,在这种情况下文件将在最后增长(所有内容保持不变,但现在内容后面有空格)或者您可以截断它(在这种情况下,内容在结尾处被切断)。可以在文件中复制数据但是没有系统功能可以做到这一点,你必须自己做,这几乎和上面显示的解决方案一样低效。