あなたは私をコメントとして:だけ何も
、[バックエンド]の下で何が
Perlでこれを行うと興味があります。でない場合はとコメントしてください。私は削除し、答えます。このワンライナーがあなたのためにそのセクションを見つけ
[no-backend]
# enabled = no
# data source = average
# type = graphite
# destination = localhost
# prefix = netdata
# hostname = localhost
# update every = 10
# buffer on failures = 10
# timeout ms = 20000
[backend]
# enabled = no
# data source = average
# type = graphite
# destination = localhost
# prefix = netdata
# hostname = localhost
# update every = 10
# buffer on failures = 10
# timeout ms = 20000
[no-backend]
# enabled = no
# data source = average
# type = graphite
# destination = localhost
# prefix = netdata
# hostname = localhost
# update every = 10
# buffer on failures = 10
# timeout ms = 20000
:
perl -lne '$b=$.; $e=($b+10) if /\[backend\]/;print if $b++<$e' file
or readable version
perl -lne 'if(/\[backend\]/){ $b=$.; $e=($b+10); }; if($b++ < $e){ print }' file
と出力:代わりに、今
[backend]
# enabled = no
# data source = average
# type = graphite
# destination = localhost
# prefix = netdata
# hostname = localhost
# update every = 10
# buffer on failures = 10
# timeout ms = 20000
と
は、あなたがこのファイルを持っていると言います
印刷あなたのcaその後、
[no-backend]
# enabled = no
# data source = average
# type = graphite
# destination = localhost
# prefix = netdata
# hostname = localhost
# update every = 10
# buffer on failures = 10
# timeout ms = 20000
[backend]
enabled = yes
data source = average
type = graphite
destination = 192.168.99.38:2003
prefix = netdata
hostname = $HOSTNAME
update every = 10
buffer on failures = 10
timeout ms = 20000
[no-backend]
# enabled = no
# data source = average
# type = graphite
# destination = localhost
# prefix = netdata
# hostname = localhost
# update every = 10
# buffer on failures = 10
# timeout ms = 20000
、最終的にはすべてが良かった場合は出力をチェックした後:
s/#//;s/no/yes/;s/(?<=destination =).+$/192.168.99.38:2003/;s/(?<=hostname =).+$/$HOSTNAME/
フルワンライナー
perl -lpe 'if(/\[backend\]/){$b=$.;$e=($b+10);};if($b++<$e){ s/#//;s/no/yes/;s/(?<=destination =).+$/192.168.99.38:2003/;s/(?<=hostname =).+$/\$HOSTNAME/ }' file
と出力:nのそのセクションを変更あなたは-i
オプションを使用して、次のような場所の編集機能を使用できます。
perl -i.bak -lne '...the rest of the script...' file
.bakは、古いファイルのバックアップを取得するためのものです。 (のような:file.txt.bak)あなたのコメント
perl -lpe '$hn=qx(cat /etc/hostname);chomp $hn;if(/\[backend\]/){$b=$.;$e=($b+10);};if($b++<$e){s/#//;s/no/yes/;s/(?<=destination =).+$/192.168.99.38:2003/;s/(?<=hostname =).+$/$hn/ }' file
と出力のための
UPDATE:
...
...
[backend]
enabled = yes
data source = average
type = graphite
destination = 192.168.99.38:2003
prefix = netdata
hostname = k-five
update every = 10
buffer on failures = 10
timeout ms = 20000
...
...
だから、唯一の '[バックエンド]それが存在するかどう'あなたはすべてのセクションを編集する以下の設定を編集したいです'[section-name']の下に? –
@ k-five '[backend]'の下にあるものだけ、それ以外は何もありません。申し訳ありませんが十分に明確ではない、 – Aborted
@Inian私はあなたの答えを見ることができません。私は以前のものを見て、それを適用しようとしていましたが、今は消えてしまいました。 – Aborted