Как использовать grep для получения значения тега - PullRequest
0 голосов
/ 07 сентября 2018

У меня есть файл (скажем, file.txt), содержащий данные, как показано ниже

^A15=0^A18=20170924065847986457^A21=0^A22=2

Как я могу использовать grep для получения значения тега 18?

Ответы [ 2 ]

0 голосов
/ 07 сентября 2018

По запросу (GNU) grep:

echo "^A15=0^A18=20170924065847986457^A21=0^A22=2" | grep -oP "A18=\K\d+"

вывод:

20170924065847986457

\ K - это короткая и эффективная форма (? <= Pattern), которую вы используете как предварительное утверждение нулевой ширины перед текстом, который вы хотите вывести. </p>

0 голосов
/ 07 сентября 2018

Это не подходит для grep, который предназначен для фильтрации, а не для извлечения.

Вы можете использовать perl вместо:

perl -pe 's/.*\^A18=([^^]+).*/$1/' <<< '^A15=0^A18=20170924065847986457^A21=0^A22=2'

Это выводит: 20170924065847986457

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...