Почему eval из GNU make преобразует список в скаляр?

Что ж, если у вас есть инструменты GNU, вы можете сделать:

for match in \
    Server\ Health\ Check\ 1
    Server\ Health\ Check\ 2
    Errors\ caused\ by\ X
do  grep -Fxm1 "$match"
    case $match in 
    (S*) sed -nEu '/^[0-9/:]+/!q;p';;
    (*)  sed -u '4q;3d;1d';;
esac;done <file

Здесь предполагается, что есть некоторые промежуточные данные между интересующими вас разделами (иначе: cat ) .

Без инструментов GNU:

grep -nxE 'Server Health Check [12]|Errors caused by X' <file |
sed 's|\([^:]*\):S.*|\1,/\n.*[^0-9/:]/{\1!P?}?|
     s|\([^:]*\):E.*|\1{N;s/.*\\n//p;N;s///p?}?|
     y/?/\n/' | sed -e1!N -f- -eD ./file
0
22.12.2017, 19:27
0 ответов

Теги

Похожие вопросы