awkで最初に一度だけ実行したい処理をBEGIN部に記載します。
今回はBEGINを使った場合の例を示します。
ポイントはawkのアクション部分(「'{}’」でくくる箇所ですね)。
「’」と「{」の間にBEGINおよびその処理を記載します。
BEGINの処理も「{}」でくくるため、以下のようになります。
1 |
'BEGIN { BEGINの処理} {メインの処理}' |
実際にやってみましょう。
1 2 3 4 |
# echo tora | awk 'BEGIN {print "start!!"} {print $0}' <span style="color: #ff0000;">start!!</span> tora # |
BEGIN部に記載した「start!!」が表示されていることがわかります。
今度は/etc/passwdをinputにして、確認してみます。
1 2 3 4 5 6 7 8 9 10 11 12 |
# awk 'BEGIN {print "start!!"} {print $0}' /etc/passwd | head <span style="color: #ff0000;">start!!</span> root:x:0:0:root:/root:/bin/bash bin:x:1:1:bin:/bin:/sbin/nologin daemon:x:2:2:daemon:/sbin:/sbin/nologin adm:x:3:4:adm:/var/adm:/sbin/nologin lp:x:4:7:lp:/var/spool/lpd:/sbin/nologin sync:x:5:0:sync:/sbin:/bin/sync shutdown:x:6:0:shutdown:/sbin:/sbin/shutdown halt:x:7:0:halt:/sbin:/sbin/halt mail:x:8:12:mail:/var/spool/mail:/sbin/nologin [root@kamotora ~]# |
ここでも最初に一度だけ表示されていることがわかります。