|
最近Unixを始めたのですが、サブルーチンの作り方がわかりません。 (呼び方、書き方) 簡単な例を教えていただけると幸いです。 |
|
awk scriptを使って下の様なことがしたいのですが、方法を教えて下さい。 Input File1: 10 abcde 9 bcdef 12 cdefg Input File2; 3 abcde 5 cdefg 12 defgh ファイル1と2を比較し、$2の内容が同じ場合、file1 と file2 の $1 $2 を output file の $1 $2 $3 $4に出力する。 比較して見つからない 場合はスペースを出力する。 Output file 10 abcde 3 abcde 12 cdefg 5 cdefg 3 abcde 12 defgh よろしくお願いします。 |
|
> サブルーチンの作り方がわかりません。 言語がわからないと何とも言えません。 > awk scriptを使って下の様なことがしたいのですが #!/usr/bin/awk -f BEGIN{ while (getline< ARGV[2] >0 ){ hash[$2]=$1 } while (getline< ARGV[1] >0 ){ if ( hash[$2] ){ print $1,$2,hash[$2],$2 } else { printf "%s %s \n",$1,$2 } delete hash[$2] } close(ARGV[2]); while (getline< ARGV[2] >0 ){ if ( hash[$2] ){ print $1,$2 } } } FreeBSD の awk と Solaris の nawk では動きましたが、 Solaris の awk では動かず。 うーん、awk らしくない…(笑) まぁ awk スクリプトを 書いたのは4年ぶりくらいなので、これで勘弁して下さい。 # 見本求む。 |
|
すみません。 Perlです。 |