Основываясь на ваших tshark
параметрах, я предполагаю, что вы пытаетесь вывести 6 определенных полей, и одно из них пустое.
tshark
по умолчанию использует символ TAB в качестве разделителя, поэтому вывод будет содержать два последовательных символа TAB (указывающих на отсутствующее значение).
awk
, однако, по умолчанию рассматривает несколько символов табуляции/пробелов как один разделитель полей - таким образом, он не делает того, что вы ожидаете.
Решение состоит в том, чтобы указать в awk один символ-разделитель полей.
Смотрите пример, значение "4" отсутствует в симулированном выводе:
$ printf "1\t2\t3\t\t5\t6\n"
1 2 3 5 6
По умолчанию AWK рассматривает две табуляции как один разделитель полей, что приводит к следующему:
$ printf "1\t2\t3\t\t5\t6\n" \
| awk '{print $1":"$2":"$3":"$4":"$5":"$6}'
1:2:3:5:6:
То, что вы хотите, вероятно, следующее:
$ printf "1\t2\t3\t\t5\t6\n" \
| awk -v FS='\t' '{print $1":"$2":"$3":"$4":"$5":"$6}'
1:2:3::5:6
Решение состоит в том, чтобы полностью сбросить установку PSQL, чтобы она находилась в том же состоянии, в котором она была установлена. Debian отделяет конфигурацию базы данных от файлов базы данных, в отличие от общей установки PSQL, которая помещает все в один и тот же каталог. Debian позволяет нескольким кластерам и даже разным версиям PSQL сосуществовать на одном хосте.
Configuration files: /etc/postgresql/[version]/[cluster]/
Binaries: /usr/lib/postgresql/[version]
Data files: /var/lib/postgresql/[version]/[cluster]
Установка Debian PSQL автоматически вызывает initdb
, т. е. инициализирует кластер с кодировкой и локалью по умолчанию. Кодировку можно изменить позже, но локаль нельзя. Чтобы изменить локаль (, возможно, другие параметры в initdb ), удалите существующий кластер по умолчанию и создайте новый :
-Получите привилегии суперпользователя.
-Выполните следующую команду:
pg_dropcluster --stop <version> main
For example:
pg_dropcluster --stop 8.3 main
-Запустите initdb с вашими параметрами. Например:
pg_createcluster --locale de_DE.UTF-8 --start 8.3 main