Извлечение данных между двумя словами с помощью sed или awk - PullRequest
0 голосов
/ 13 мая 2018

У меня есть файл журнала, и я пытаюсь извлечь данные между двумя словами этого файла журнала.

username=#$^@$^&@#@%^&==&employeeid

Есть данные до и после этих слов, но меня интересуют только данные между ними. Таким образом, ожидаемый результат (только значение между username= и &employeeid

#$^@$^&@#@%^&==

Я хочу сначала выполнить поиск по файлу, а затем выполнить поиск, используя sed в этом файле. Что-то вроде ниже. Это не работает для меня точно ..

grep "e553bb57-b94b-cb0f-f4ba-eb9a02ab0050" /path/abc/logfile.txt | sed -n '/username=/{s/.*username=//;s/\S*=.*//;p}'

1 Ответ

0 голосов
/ 14 мая 2018

Как насчет

echo 'username=#$^@$^&@#@%^&==&employeeid' | sed 's/username=\(.*\)==&employeeid/\1/'

Вывод

#$^@$^&@#@%^&

Соответствующая часть будет в \1.

...