文 | 意味 |
---|---|
printf "form",var < FILE | 値 var を書式 form で編集、ファイル(FILE)に出力 |
print var <<FILE | 値 var をファイル(FILE)に追加出力 |
print var | COMM | 値 var をパイプでコマンド(COMM)へ出力 |
getline < "FILE" | ファイル(FILE) を open, 1行読み込む($0へ) |
system("COMM") | コマンド(COMM)を非同期実行 |
$ cat sep.awk { fname="passwd."substr($0,1,1) printf "%-8s %5d %5d %s\n", $1, $3, $4, $NF >> fname } $ awk -F: -f sep.awk $ ls passwd.? passwd.a passwd.c passwd.h passwd.n passwd.s passwd.u passwd.y passwd.b passwd.d passwd.l passwd.r passwd.t passwd.w $ cat passwd.a auth 6 11 adm 10 19 /usr/bin/ksh user1 666 15 /usr/local/bin/tcsh
$ cat uid.awk BEGIN{ FS=":" # 区切り文字をコロン(:)に while( getline < "/etc/passwd" ) { login[$3]=$1 } } { printf "uid=%-5d user=%s \n", $1, login[$1] } $ awk -f uid.awk 0 uid=0 name=root 10 uid=10 name=adm ^D
$ cat i2f.awk #! /bin/gawk -f BEGIN{ while( "ls -i" | getline ){ print fname[$1]=$2 } } { while( getline ) { if( $1 <=0 ) exit; printf "%d %s\n", $1, fname[$1] } } $ i2f.awk 5518 allip # i-node とファイル名を表示 (ls -i の結果) 5645 bkup 5623 box : 5645 # i-node No. を入力するとファイル名が表示される 5645 bkup -1 # 負の数を入力すると終了 $