
2つの括弧の間に内容を印刷する方法。
たとえば、
return [ "server1.domain.com" ,
"server2.domain.com" ,
"server3.domain.com" ]
予想される結果:
"server1.domain.com" ,
"server2.domain.com" ,
"server3.domain.com"
予想される結果を得るには?
答え1
そしてpcregrep
:
pcregrep -Mo 'return \[\K[^]]*'
Mreturn [
ultiline は on の後に文字ではなく一連の項目が一致します]
が、oその一部だけKeep (右側\K
)に出力します。
答え2
そしてsed
sed '
/.*\[ /{
s/// #remove all upto open square bracket
:a #return mark
/\ ].*/!{
N #get next line untill there is close square bracket
ba #back to return mark
}
s/// #remove all from close square bracket to end of line
}
'