Как насчет чистого решения Grep?
df -k | grep var | grep -o '[0-9]*%'
Вы можете присоединиться к этим двум грепсам с помощью небольшой помощи Perl Regexp:
df -k | grep -Po 'var.* \K[0-9]*%'
Никто не отвечает, так что вот что я сделал:
sort -T /mnt/tmp --parallel=14 -S 50G myBigFile.txt
Я не использовал -размер партии
, так как не был уверен, что будет хорошим значением, и предположительно сорт
в любом случае умён в этом.
/mnt
смонтирован на большом эфемерном диске (машина - VM в облаке). Если /tmp
находится на диске с большим количеством места, вы можете пропустить -T
. Если у вас очень быстрый диск с достаточным количеством места, используйте его.
Если я правильно помню, ему снова нужно примерно то же место, что и размер сортируемого файла - в основном он делит файл на два или более кусочка, каждый из которых он может отсортировать в памяти, сохраняет их отсортированными во временном диске, затем делает сортировку по слиянию, чтобы получить конечный результат.