を使用して構成ファイルにホスト名を追加しようとしていますsed
。追加する必要があるホストが複数あるため、自動化したいと考えています。私は次の状況で立ち往生しています:
入力ファイルの例:
#######################################################################
#
#Service: System Uptime
#######################################################################
define service{
use generic-service
host_name host1,host2,host3,host4,host5,host6,host7,host8,host9,host10,host11,host12,host13,host14,host15,host16,host17,host18,host19,host20,host21,host22,host23,host24,host25,host26,host27,host28,host29,host30
service_description System Uptime
is_volatile 0
check_period 24x7
contact_groups Test_group
notification_options c,w,r,u
check_command check_nt_uptime
max_check_attempts 3
normal_check_interval 1
retry_check_interval 1
notification_interval 120
notification_period 24x7
}
達成しようとしているのは、新しいホストを「host_name」行に追加することですが、ファイルには「host_name」が非常に多く出現するため、特定のサービスに追加するには、「Service: System Uptime」を検索してからそこから 7 行目で「host_name」を検索し、新しいホストを追加します。
私は私が使いたいことをしましたsed
:
sed '/Service: System Uptime/{N;N;N;N;N;N;N;N;/host_name/s|$|,NewHost|}' input file
問題は、そこに複数のホストがある場合、上記のsed
コマンドが失敗し、改行してホストを追加することです。
それに関する提案はありますか?