как извлечь слово из {} и вывести на новую строку - PullRequest
0 голосов
/ 16 апреля 2020
* Входной файл

имеет строку, подобную приведенной ниже

Line 21800: Value: $${scripts-dir1}part_archive_ret_hist_stg.ksh $${databse-name}
Line 32456: Value: $${log-dir}rollback.ksh $${databse-name}

Как извлечь слово из {} и вывести его на новую строку в unix?

Вывод должен выглядеть как

scripts-dir1
databse-name
log-dir
databse-name

1 Ответ

1 голос
/ 16 апреля 2020
$ LINE='Line 21800: Value: $${scripts-dir1}part_archive_ret_hist_stg.ksh $${databse-name}'
$ echo "$LINE"|grep -oP '{\K[\w-]*(?=})'
scripts-dir1
databse-name

На самом деле вы должны обновить свой вопрос, добавив больше примеров. Для unix вы можете попробовать использовать awk, но следующее будет работать, только если у вас есть два случая в строке:

$ LINE='Line 21800: Value: $${scripts-dir1}part_archive_ret_hist_stg.ksh 
$ echo $LINE|awk -F "[{}]" '{print $2"\n"$4}'
scripts-dir1
databse-name
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...