次の構成ファイルがあります。
define host{
host_name xxxxxxxx1748
use windows-server
alias Comet
hostgroups +bu-automotiveprd,screen-automotiveprd2
address XXX.XXX.XXX.XXX
}
define host{
host_name yyyyyyyyy991
use aix-server
alias
hostgroups +bu-automotiveprd,screen-automotiveprd2
address YYY.YYY.YYY.YYY
}
検索したいCPU名、一致するものがある場合、出力は次のようになります。
yyyyyyyyy991
はい - ホストを検索したいとしましょう。
その後、出力は次のようになります。
define host{
host_name yyyyyyyyy991
use aix-server
alias
hostgroups +bu-automotiveprd,screen-automotiveprd2
address YYY.YYY.YYY.YYY
}
ベストアンサー1
この試み、
perl -0777 -ne '/([^\n]*{[^}]*(yyyyyyyyy991)[^}]*})/ && print "$1\n"' file
説明する:
perl -0777
Perlを実行し、ファイル全体を1行に読み込みます。-ne
各行(n
)に対してe
次の()操作を実行します。/(pattern)/ && print "$1\n"
正規表現パターンを一致させ、それを最初の一致グループ($1
)として追加してから印刷します。
モデル:
[^\n]*{ ... }
「{」から次の「}」までを含む行の先頭から何でも一致します。- そして
...
存在[^}]*(yyyyyyyyy991)[^}]*
:- そうでないすべての文字と一致します。
}
- どこかに含める必要があります
yyyyyyyyy991
。
- そうでないすべての文字と一致します。