AWK не может разбить строку, когда разделитель ||| - PullRequest
2 голосов
/ 29 июня 2019

Давайте предположим, что у меня есть файл (file.txt):

My name is John ||| Second part of example.

Чтобы получить первую часть (до |||)

Я сделал следующее:

awk -F '|||' '{print $1}' file.txt 

Однако эта команда дает мне всю строку.

Как получить часть каждой строки до |||?

Ответы [ 2 ]

2 голосов
/ 29 июня 2019

Это должно работать:

awk -F"[|][|][|]" '{print $1}' file
My name is John

Вторая часть

awk -F"[|][|][|]" '{print $2}' file
 Second part of example.

И, как показывает @glenn:

awk -F"[|]{3}" '{print $1}' file
My name is John
0 голосов
/ 29 июня 2019

И символы канала, и обратная косая черта являются специальными символами, поэтому добавьте еще одну обратную косую черту, чтобы экранировать оба:

❯ awk -F '\\|\\|\\|' '{print $1}' file
  My name is John
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...