awkで文字列を追加する

自分がよくやる文字列追加を書いておきます。お役に立てたら嬉しいです。

$ echo "a b c" | awk '{print "hoge", $1,$2,$3}'
hoge a b c

レコードの一番最初に文字列を追加できました。sedでもできますが、こちらをよく使います。

Router# show ip interface brief
Interface             IP-Address      OK?    Method Status     	Protocol
GigabitEthernet0/1    unassigned      YES    unset  up         	up
GigabitEthernet0/2    192.168.190.235 YES    unset  up         	up
GigabitEthernet0/3    unassigned      YES    unset  up         	up
GigabitEthernet0/4    192.168.191.2   YES    unset  up         	up
TenGigabitEthernet2/1 unassigned      YES    unset  up         	up
TenGigabitEthernet2/2 unassigned      YES    unset  up         	up
TenGigabitEthernet2/3 unassigned      YES    unset  up         	up
TenGigabitEthernet2/4 unassigned      YES    unset  down       	down
GigabitEthernet36/1   unassigned      YES    unset  down        down
GigabitEthernet36/2   unassigned      YES    unset  down        down
GigabitEthernet36/11  unassigned      YES    unset  down       	down
GigabitEthernet36/25  unassigned      YES    unset  down       	down 
Te36/45               unassigned      YES    unset  down       	down
Te36/46               unassigned      YES    unset  down       	down
Te36/47               unassigned      YES    unset  down       	down
Te36/48               unassigned      YES    unset  down       	down
Virtual36             unassigned      YES    unset  up         	up

例えば上記のようなステータス出力から、全てのポートをshutdownコンフィグを作ることも出来ます。

$ cat cisco_status | awk 'NR>2{print "int",$1,"\nshutdown\n"}'
int GigabitEthernet0/1 
shutdown

int GigabitEthernet0/2 
shutdown

int GigabitEthernet0/3 
shutdown

int GigabitEthernet0/4 
shutdown

int TenGigabitEthernet2/1 
shutdown

int TenGigabitEthernet2/2 
shutdown

int TenGigabitEthernet2/3 
shutdown

int TenGigabitEthernet2/4 
shutdown

int GigabitEthernet36/1 
shutdown

int GigabitEthernet36/2 
shutdown

int GigabitEthernet36/11 
shutdown

int GigabitEthernet36/25 
shutdown

int Te36/45 
shutdown

int Te36/46 
shutdown

int Te36/47 
shutdown

int Te36/48 
shutdown

int Virtual36 
shutdown

NR>2で2行目以降を表示してます。次にテキスト"int"を挿入して、$1、次いで”¥nshutdwon¥n”としてます。¥nは改行です。#(config-if)に入ってshutdown Enterまでを実行できます。

ちなみに昔のCisco IOSは即時反映なので、くれぐれも入力時は注意してください。自信がないときは確実に手入力もありです。