开发者社区> 问答> 正文

为什么GNU可能在此特定文件上挂了10个小时以上

我正在尝试使用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进行了排序。如果可能的话,我正在虚拟机中执行此操作。

什么会导致这种行为?

展开
收起
祖安文状元 2020-01-08 15:30:25 440 0
1 条回答
写回答
取消 提交回答
  • 在发出排序命令之前设置LC_ALL = C或在脚本文件的开头将shebbang下方的LC_ALL = C导出即可解决该问题。不知道为什么最后一次更新添加到文本文件中的特定文本会导致该命令在没有LC_ALL = C的情况下永久卡住。

    2020-01-08 15:30:29
    赞同 展开评论 打赏
问答分类:
问答地址:
问答排行榜
最热
最新

相关电子书

更多
低代码开发师(初级)实战教程 立即下载
冬季实战营第三期:MySQL数据库进阶实战 立即下载
阿里巴巴DevOps 最佳实践手册 立即下载