Использование sed для печати рисунка с конкретными линиями - PullRequest
0 голосов
/ 01 марта 2019
<b>$</b> cat sed-examples
this_is_a_file_to_stat_edid
ab
343
13524365476586o
FINEME
OKME
dasfgh
this_is_a_file_to_stat_edid
ab
343
13524365476586o
FINEME
OKME
dasfgh

Я хочу видеть вывод как

this_is_a_file_to_stat_edid
FINEME
OKME

Пробовал с помощью sed:

sed -n -e '/edid/ {h;n;n;n;H;x;p}h'

Возвращает:

this_is_a_file_to_stat_edid
FINEME
but not OKME

Ответы [ 2 ]

0 голосов
/ 05 марта 2019
  1. Использование POSIX sed (скопировано с ответа Тора , минус команда q):

    sed -n -e '/edid/{p;n;n;n;n;p;n;p;}' sed-examples
    
  2. Использование GNU sed:

    sed -n '1~7p;5~7p;6~7p' sed-examples
    

Вывод:

this_is_a_file_to_stat_edid
FINEME
OKME
this_is_a_file_to_stat_edid
FINEME
OKME
0 голосов
/ 01 марта 2019

Нет необходимости использовать удерживающее пространство:

sed -n '/edid/ { p; n; n; n; n; p; n; p; q; }' sed-examples

Вывод:

this_is_a_file_to_stat_edid
FINEME
OKME
...