Итак, вам нужно имя сети, в котором имя домена в следующей строке включает в себя «ims3», а не имя, в котором в следующей строке содержится «ims7» (даже если сетевые имена в примере совпадают).
sed -n '/NetworkName/{N;/ims3/{s/.*NetworkName=\(.*\)\n.*/\1/p;};}' File
Это также позволяет избежать злоупотребления кошачьими (не говоря уже о сокращении числа выполняемых команд).
Протестировано на MacOS X 10.6.4, но нет причин думать, что оно не будет работать и в других местах .
Однако эмпирические данные показывают, что Solaris sed
отличается от MacOS sed
. Все это можно сделать одной командой sed
, но для этого нужно три строки:
sed -n '/NetworkName/{N
/ims3/{s/.*NetworkName=\(.*\)\n.*/\1/p;}
}' File
Проверено на Solaris 10.