“Сортировка Bash на месте” означает сортировку содержимого файла непосредственно внутри самого файла без создания отдельного отсортированного выходного файла. Вот несколько методов, которые можно использовать для достижения этой цели:
-
Использование команды
sortс опцией-o:sort -o file.txt file.txt -
Использование команды
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 -
Использование однострочника
Perlдля сортировки файла на месте:perl -i -e 'print sort <>' file.txt -
Использование команды
awkдля сортировки и перезаписи файла:awk '{ lines[NR] = $0 } END { asort(lines); for (i=1; i<=NR; i++) print lines[i] > FILENAME }' file.txt -
Использование редактора
exдля сортировки файла на месте:ex -s -c '%!sort' -c 'wq' file.txt