我正在尝试使用Ubuntu 18 lts附带的gnu sort合并和重复删除同一类型的纯txt文件的几种不同版本。我几乎每天都使用排序,排序大小为1gb +的文件没有问题。
但是,当我在后台将其放置10个小时(总共约600 mb的数据)时,我仍然无法完成以下命令:
find backups -type f -iname 'file0.txt' -o -iname 'file1.txt' -o -iname 'file2.txt' -o -iname 'file3.txt' -exec sort -u {} + > "combined.txt"
排序部分是引起问题的原因,其余命令与我的测试无关。我将所有文件整理到一个约600 mb的单个文件中,当我尝试对-u这个文件进行排序时,即使将内存缓冲区设置为80%(大约6gb可用内存)时,它仍然永远挂起。我的磁盘空间也没有问题。
当它仍在运行时,我已将未排序的3gb文本文件拖入并成功对-u进行了排序。如果可能的话,我正在虚拟机中执行此操作。
什么会导致这种行为?
在发出排序命令之前设置LC_ALL = C或在脚本文件的开头将shebbang下方的LC_ALL = C导出即可解决该问题。不知道为什么最后一次更新添加到文本文件中的特定文本会导致该命令在没有LC_ALL = C的情况下永久卡住。
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。