Добавление этого параметра в конец сценария 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
Это одна из причин, по которой рекомендуется формат даты ГГГГ -ММ -ДД.
-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
и с разделителем полей по умолчанию (переход от не -от пустого до пустого ))), затем месяц, затем день.