Назад | Перейти на главную страницу

Группа соответствия egrep не печатается?

Я пытаюсь создать сценарий bash, который будет искать строки из файла с помощью egrep. Я создал регулярное выражение, которое должно группировать нужную мне информацию, проблема заключается в попытке получить результат. Я тестировал его с помощью следующей команды, но при запуске ничего не печатается. Как напечатать несколько строк между - {80} и "Отключено"?

egrep -E "^-{80}$\r?\n?([:ascii:]*)Disconnected from Server" testing.txt

Файл: testing.txt

Connected to the server: name here

Some header text.
More text to go though...
--------------------------------------------------------------------------------
The information that I want, would be in here;

Including this line as well #$
and this one.

Disconnected from Server...

Возможно, вам лучше использовать такой инструмент, как awk.

awk '/^----+$/ {flag=1;next} /Disconnected from Server/{flag=0} flag {print}'

Видеть: http://nixtip.wordpress.com/2010/10/12/print-lines-between-two-patterns-the-awk-way/

Просто потому, что я в конце концов решил это, вот версия sed

sed -n '/^-----\+$/,/^Disonnected/ {/^----\+$/d;/^Disonnected/d;p;}' testing.txt

Это работает на всех строках между / RE1 / и / RE2 /, если ввод соответствует / RE1 / или / RE2 /, то он удаляется, в противном случае он печатается.