Как извлечь конкретное слово из нескольких текстовых файлов - PullRequest
0 голосов
/ 05 марта 2020

У меня есть несколько текстовых файлов (скажем, a.txt), содержимое которых показано ниже. Мне нужно извлечь из этих файлов версию инструмента ICV (в данном случае это ICV: 2018.12-1). Может ли какой-либо орган помочь мне найти версию инструмента после ICV, поскольку эта версия инструмента (2018.12-1) изменяется с одного текстового файла на другой текстовый файл, но этот формат остается одинаковым для всех файлов, таких как ;tool name:tool version;tool name:tool version;?

1) a.txt

setenv VDK_TOOL_VERS 'CDESIGNER:2014.12-SP2-2;CUSTOMCOMPILER:2018.09-SP1-1;HSPICE:2018.09-SP1-1;XA:2018.09-SP2;STARRCXT:2018.06-SP5;ICV:2018.12-1;PYLCC:2008.09-SP4-11;CALIBRE:2018.2-15.10;CIRANOVA:2012.12-1-gcc44x;HERCULES:2008.09-SP5-2;WAVEVIEW:2019.06';

1 Ответ

1 голос
/ 05 марта 2020

Поиск точки, не являющейся точкой с запятой:

$ grep -o 'ICV:[^;]*' a.txt
ICV:2018.12-1

Только версия с использованием lookbehinds:

$ grep -Po '(?<=ICV:)[^;]*' a.txt
2018.12-1

Lookahead & Lookbehind

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