Mat*_*vid 11 unix sorting command-line temporary-files
我正在尝试合并UNIX/Linux脚本中的许多已排序文件sort -m,我注意到sort首先将结果写入临时文件,然后将其复制到目标.我的理解-m是它假定文件是排序的,所以使用临时文件是完全没必要的,它浪费了硬盘空间和CPU周期(我sort在管道中使用,等待排序输出任何东西.)有没有办法告诉sort合并排序文件时不使用临时文件?或者更好的版本没有?
确切的CL看起来像:
$ sort -m -s -t '_' -k 1,1n -k 2,2n <(gunzip <file_1) [...] <(gunzip <file_n) | gzip >output
Run Code Online (Sandbox Code Playgroud)
我正在使用sortGNU coreutils 5.97.
从中检查这些选项man sort,它们可能使您最小化合并所需的空间。
--batch-size=NMERGE
Run Code Online (Sandbox Code Playgroud)
一次最多合并NMERGE输入;更多使用临时文件
--compress-program=PROG
Run Code Online (Sandbox Code Playgroud)
用PROG压缩临时文件;用PROG -d解压它们
| 归档时间: |
|
| 查看次数: |
7107 次 |
| 最近记录: |