Методы сортировки файла на месте с использованием Bash

“Сортировка Bash на месте” означает сортировку содержимого файла непосредственно внутри самого файла без создания отдельного отсортированного выходного файла. Вот несколько методов, которые можно использовать для достижения этой цели:

  1. Использование команды sortс опцией -o:

    sort -o file.txt file.txt
  2. Использование команды sedдля перезаписи файла с отсортированным выводом:

    sed -i -e '1,$!d' -e '$!G' -e '1!G' -e '$p' -e 'h' -e '$x' -e 's/[[:blank:]]*$//' -e '1!H;1h;$!d' -e x file.txt
  3. Использование однострочника Perlдля сортировки файла на месте:

    perl -i -e 'print sort <>' file.txt
  4. Использование команды awkдля сортировки и перезаписи файла:

    awk '{ lines[NR] = $0 } END { asort(lines); for (i=1; i<=NR; i++) print lines[i] > FILENAME }' file.txt
  5. Использование редактора exдля сортировки файла на месте:

    ex -s -c '%!sort' -c 'wq' file.txt