ron*_*nie 10 sorting bash file duplicates in-place
我知道我的标题不是很明显,但让我试着在这里解释一下.
我有一个文件名test.txt,有一些重复的行.现在,我想要做的是删除那些重复的行,同时删除update test.txt新的内容.
的test.txt
AAAA
BBBB
AAAA
CCCC
Run Code Online (Sandbox Code Playgroud)
我知道我可以sort -u test.txt用来删除重复项但是用新内容更新文件如何将它的输出重定向到同一个文件.以下命令不起作用.
sort -u test.txt > test.txt
Run Code Online (Sandbox Code Playgroud)
那么,为什么上面的命令不起作用并且方法是否正确?
还有其他任何方式
sort_and_update_file test.txt
Run Code Online (Sandbox Code Playgroud)
它可以对文件进行排序和自动更新,而无需重定向.
shell中的重定向将无法正常工作,因为您尝试同时从同一个文件读取和写入.实际上,> file.txt在甚至执行排序之前,文件被打开以进行写入()
@ potong的答案是有效的,因为排序程序本身可能会将所有行存储在内存中,我不会依赖它,因为它没有在联机帮助页中明确指出它可以与输入文件相同(尽管它可能会起作用).除非记录为"就地"工作,否则我不会这样做(@ perreal的答案可行,或者你可以将中间结果存储在shell内存中)