Как сортировать файл DD-MM-YYYY Даты

Добавление этого параметра в конец сценария awk приводит к тому, что awk выполняет цикл для перед выходом:

    END {
        for (i=1; i<=n; i++)
             printf pattern, j=user[i], j, j
    }

Если требуется напечатать все строк файла данных , то, вероятно, следует удалить exit в конце блока кода /specific _ line/, поскольку это приводит к тому, что awk прекращает обработку ввода и ветви в блок END , если он присутствует, а затем выходит из сценария

-121--252325-

Что вы пытаетесь достичь, так это увидеть индикатор выполнения процесса сжатия. Но использование pv невозможно. Он показывает только прогресс передачи, который можно достичь чем-то подобным (во всяком случае, это первая ссылка в google):

pv input_file | gzip > compressed_file

Индикатор выполнения будет работать быстро, а затем он будет ждать сжатия, которое больше не наблюдается с помощью pv .

Но вы можете сделать это другим путем раунд и смотреть выходной поток, бот здесь вы не сможете увидеть фактический прогресс, потому что pv не знает фактический размер сжатого файла:

gzip input_file | pv > compressed_file

Лучшее, что я нашел до сих пор, это из commandlinefu даже с ограничением скорости и сжатием каталогов:

$D=directory
tar pcf - $D | pv -s $(du -sb $D | awk '{print $1}') --rate-limit 500k | gzip > target.tar.gz

-121--42739-

Это работает для эха, так как является одновременно командой shell builtin и . По умолчанию используется builtin.

$ type echo
echo is a shell builtin
$ type -P echo # ignores builtins
/bin/echo
$ echo foo # builtin
foo
$ /bin/echo foo # external command
foo

0
04.12.2018, 06:14
1 ответ

Это одна из причин, по которой рекомендуется формат даты ГГГГ -ММ -ДД.

-k2сортирует по части строки, которая начинается со второго поля, вам нужно -k2,2сортировать только по второму полю, поэтому:

sort -b -t- -k2,2 -k1,1

Или:

sort -b -k1.7,1.10 -k1.4,1.6 -k1.1,1.2

Для сортировки сначала по году (от 7-го до 10-го символа первого поля (подсчитываются после игнорирования начальных пробелов в этом поле с помощью -bи с разделителем полей по умолчанию (переход от не -от пустого до пустого ))), затем месяц, затем день.

6
28.01.2020, 02:18

Теги

Похожие вопросы