Команда awk для извлечения строки после определенной строки шаблона - PullRequest
0 голосов
/ 24 мая 2018

Я хочу извлечь текст после шаблона "List values are here:", который находится в кавычках в списке.Я очень новичок в этом.Может кто-нибудь, пожалуйста, помогите

List values are here: "list1 abc" "list2 test" "end of list"

Что я сделал:

echo $va| awk '/List values are here:/ {print $1}' var="$va"

Ответы [ 2 ]

0 голосов
/ 24 мая 2018
$ echo "${val#*: }"
"list1 abc" "list2 test" "end of list"
0 голосов
/ 24 мая 2018

Вам не нужно использовать awk или sed для такого рода задач, поскольку вам нужно только извлечь некоторую часть строки.grep - это инструмент, который вы ищете.

$ grep -oP '(?<=List values are here: ).*'

ПРИМЕР:

$ echo 'List values are here: "list1 abc" "list2 test" "end of list"' | grep -oP '(?<=List values are here: ).*'
"list1 abc" "list2 test" "end of list"

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

Пояснения: - -o - изменить поведение по умолчанию grep, при котором вся строка выводится для вывода только шаблона - -P - использоватьPerl регулярное выражение - (?<=List values are here: ).* регулярное выражение, чтобы получить все после List values are here:

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