[過去ログ]
awkについて語るスレ $2 (1002レス)
awkについて語るスレ $2 http://mevius.5ch.net/test/read.cgi/tech/1172242542/
上
下
前次
1-
新
通常表示
512バイト分割
レス栞
抽出解除
レス栞
このスレッドは過去ログ倉庫に格納されています。
次スレ検索
歴削→次スレ
栞削→次スレ
過去ログメニュー
430: デフォルトの名無しさん [sage] 2011/01/06(木) 00:22:04 ▼tes09.awk BEGIN{ if (ARGV[1]=="") ARGV[1]="hoge.txt" while (getline < ARGV[1] > 0) print "BEGIN\t"$0 } ARGV[1]=="hoge.txt"{ print "BODY\t"$0 } ★質問 上記スクリプトを引数を付けた場合と付けない場合をそれぞれ実行しました。 ▼gawk -f tes09.awk hoge.txt BEGIN arima_yuuichi@example.com BEGIN ooizumi_sadawo@example.com BEGIN taguchi_kenji@example.com BODY arima_yuuichi@example.com BODY ooizumi_sadawo@example.com BODY taguchi_kenji@example.com ▼gawk -f tes09.awk BEGIN arima_yuuichi@example.com BEGIN ooizumi_sadawo@example.com BEGIN taguchi_kenji@example.com ここで、BEGIN句での ARGV[1]="hoge.txt" という代入を本編(?)でも有効にする為 にはどうすればいいでしょうか? http://mevius.5ch.net/test/read.cgi/tech/1172242542/430
432: 430 [sage] 2011/01/06(木) 06:20:53 分かり辛くてすみません。 hoge.txtの中身は下記です。 ▼ arima_yuuichi@example.com ooizumi_sadawo@example.com taguchi_kenji@example.com >>430はWin32のバイナリ「GNU Awk 3.1.7(windows special Nov 24 2009)」を使用した結果です。 下のほうの実行結果では、BEGIN句でのARGV[1]への代入はBEGIN句では有効ですが、 本編では有効になっていないので出力されていないように見えます。 ちなみに、CentOS5.5上の GNU Awk 3.1.5 では下記エラーになりました。 ▼ gawk: tes09.awk:2: if (ARGV[1]=="") gawk: tes09.awk:2: ^ 表現の char '・' は不正です。 http://mevius.5ch.net/test/read.cgi/tech/1172242542/432
436: 430 [sage] 2011/01/06(木) 23:56:01 皆様レスありがとうございます。 >>433 >これは全角スペース お恥ずかしい限りです(汗) 出勤前に思いつきで試したもので、スレ用に書いた 物をそのままコピってました・・・ >>434 BEGIN句のgetlineではARGV[1]への代入ができているのに、本文では有効に ならないという事を伝えたかったのです。 http://mevius.5ch.net/test/read.cgi/tech/1172242542/436
437: 430 [sage] 2011/01/06(木) 23:56:17 >>435 自分の質問を見直してみると全く質問になっていなかったにも関わらずエスパー してくださってありがとうございます。 ARGCについて理解できました。 BEGIN{ ARGV[1]="hoge.txt" ARGC=2 } ARGV[1]=="hoge.txt"{ print "BODY\t"$0 } こんな感じで意図した通りに出力されました。 おかげさまで今までawkの補助としてshを使ってましたが、awkだけで書ける事が 多くなりました。 引数にワイルドカードを指定して、ARGIND で特定パターンのファイル名の 物のみ処理をするとかできそうですね。 http://mevius.5ch.net/test/read.cgi/tech/1172242542/437
451: 430 [sage] 2011/01/20(木) 00:40:40 >>447 効率のいいプログラムで書き直してやればいいじゃない。 http://mevius.5ch.net/test/read.cgi/tech/1172242542/451
メモ帳
(0/65535文字)
上
下
前次
1-
新
書
関
写
板
覧
索
設
栞
歴
スレ情報
赤レス抽出
画像レス抽出
歴の未読スレ
AAサムネイル
Google検索
Wikipedia
ぬこの手
ぬこTOP
0.358s*