Я пытаюсь напечатать столбцы в файле, которые разделены | с помощью awk.
Содержание файла:
postgres | psql | | 2018-09-17 05:00:45.096491+00 | | active
test_user | PostgreSQL JDBC Driver | ***.**.**.118 | 2018-09-17 03:55:22.310569+00 | | idle in transaction
test_user | PostgreSQL JDBC Driver | ***.**.**.95 | 2018-09-17 03:54:58.638521+00 | | idle in transaction
Я использую команду awk для разделения столбцов в файле.
awk 'BEGIN { RS = "|" } ; { print $2 }' vv.txt
Также обратитесь к приложенному изображению, которое дает четкое представление о проблеме. Я не уверен, почему данные портятся? Он также рассматривает пространство как разделитель?
хорошо, как бы вы это ни называли, разделенные знаком "|", как я могу распечатать значение, разделенное знаком "|" как столбец
Это поля. Используйте разделитель полей.
вот в чем мой вопрос, как это сделать ..
Вот для чего была моя ссылка. Это идет к документации awk. Вы можете искать «разделитель полей». И прочтите это.
Возможный дубликат Как использовать ":" в качестве разделителя полей в awk?





Проблема:
Как было объяснено в комментариях, вы изменили разделитель записей вместо разделителя полей.
Решение:
awk -F'|' '{ print $2 }' vv.txt
Выход:
psql
PostgreSQL JDBC Driver
PostgreSQL JDBC Driver
RS- это разделитель записей, а не разделитель полей.