• ベストアンサー

awkについて

awkで1から10までを足して,答えをa.datに保存するというプログラムはどのように記述すればよいでしょうか?

質問者が選んだベストアンサー

  • ベストアンサー
  • mac_res
  • ベストアンサー率36% (568/1571)
回答No.1

awk </dev/null ' BEGIN { sum = 0; for (i = 1; i <= 10; ++i) { sum += i; } print sum > "a.dat" }'

19670226
質問者

お礼

どうもありがとうございます.助かりました.

関連するQ&A

  • AWKスクリプト作成法

    AWKで次のようなプログラムを作成したいと考えています。 A = B AND C D = E NOT A といったような簡単な論理演算を記述しているプログラムらしきものがあるが、例えば上記の例で2行目でE,Aを使用しているが、その場合はE,Aを使用してDを作るより以前にE,Aを定義していなければならない。このルールを守っていない個所をチェックするAWKスクリプトの 記述法、アルゴリズムを教えて下さい。できれば、更に 不正な記述を修正して並べ換えてくれればベストですが..

    • ベストアンサー
    • Perl
  • シェルでawkを使い行数を取り出すには?

    #!/bin/sh gyo=awk 'END{print NR}' sample.dat 変数gyoにsample.datの行数をいれたいのですが、 これではcommand not foundと出てしまいます。 次に awk 'END{'gyo'=NR}' sample.dat としてみたのですが今度はシンタックスエラーが出てしまいます。 どうすればsample.datの行数をシェルの変数に代入できるでしょうか?

  • awkによるあるプログラム

    次のawkによるプログラムなんですが、終了しません。 どのように改良したらよいでしょうか? #!/usr/bin/gawk -f #array_read.awk BEGIN{ for(i=0;i<10;i++)a[i*0.1]=sin(3.1415926/(i+1)); } END{ for(s in a)printf("%f %f",s,a[s]); }

  • awkによるあるプログラムその2

    立て続けに申し訳ないですが、 次のプログラムを実行すると、 gawk: ./test.awk:19: fatal: function name `foo' previously defined というエラーになってしまいます。 なぜでしょうか? #!/usr/bin/gawk -f #test.awk: BEGIN{ a="OK"; b="OK"; c="OK"; print foo(1,2); print a,b,c; print bar("AWK is", "convenient"); print a,b,c; print "4!==" recursive(4); } function foo(a,b, c){ c=a+b; return c; } function foo(a,b, c){ c=a b; return c; } function recursive(a){ if(a<=1)return 1; else return a*recursive(a-1); }

  • awk のプログラム最初の行

    awk のプログラムでは、おまじないのように #! /bin/awk -f を最初の行に書けと教えてもらってそうしています。 ところで、この ! とか /bin/awk -f とかどういういみなんでしょうか?

  • awkで別のファイルを参照して、検索結果を得たい。

    awk初心者です。 あるファイル(targetファイル)に、どのような属性があるのかを検索ファイル(objectファイル)を 使って調べたいのです。そこでawkを使って: targetファイル 5 a c objectファイル 1,aa 2,bb 3,cc 4,dd 5,aa 6,bb 7,cc 8,dd 9,aa 10,bb a,cc b,dd c,aa d,bb e,cc f,dd g,aa h,bb i,cc j,dd 以下のようなスクリプトを作成し mawk32 -f スクリプト target.txt object.txt としたのですが、動作しません。 何らかの御助言を頂ければ幸いです。 #targetファイル読み込み FILENAME == ARGV[1]{ dat1[FNR]=$1 no_dat1 = FNR } #objectファイル読み込み FILENAME == ARGV[2]{ dat2[FNR]=$0 no_dat2 = FNR } #相互に検索 END{ for (i = 1; i <= no_dat1; i++){ for (j = 1; j <= no_dat2; j++){ if (dat1[i]~/dat2[j]/) { print dat1[i],dat2[j] } }}}

  • [awk]マッチしたものをすべて取り出したい

    awk(GNU awk)を使って正規表現にマッチした部分文字列を最初にマッチしたものだけでなく、すべて取り出したいと思っています。 grepコマンドを使うと次のように簡単に取得できるのですが、awkだけで実現する場合どのように記述したらよいのでしょうか? ■例 $ echo 'abcdebx' | grep -o 'b.' 結果: bc bx # 最初にマッチしたものだけなら取得できる $ echo 'abcdebx' | awk 'match($0, /b./) {print substr($0, RSTART, RLENGTH)}' 結果: bc ■環境 GNU Awk 4.0.1 よろしくお願いします。

  • AWKからのモジュールコール

    AWKから、実行モジュール(たとえばCで書いたプログラム)をコールする事は可能でしょうか?ご存知の方教えていただけますか?

  • UNIX awkコマンド

    シェルスクリプトで、awkをつかって計算を行いたいのですが、 例えば、 file1 5040 というものが入っていたとして、 1列目の5と3列目の4を抽出して 5-4をさせて、 新しいファイルに、1という結果を保存したい場合、 どのようにしたらよいのでしょうか?? awk '{printf("%s\n",substr(0,1-3,1))} file1 > newfile でできると思ったのですができませんでした。 わかる方いましたら教えてください。

  • プログラミング言語AWKについて

    現在大学生ですがゼミ(ネットワークのゼミ)の先生の指導のもとAWKを勉強することになりました。理由はそんなにむずかしくないから、短い期間にはちゅうど良いということなのですが。実際はどういうところで使われているのでしょうか??また、勉強する価値はどんな程度でしょうか??僕は学生のうちはどんなプログラムでも勉強するのは悪くないとおもっているので頑張るつもりですが。どうも聞いたことの無いプログラムなもので気になりました。詳しい方もしくはAWKを極めている方、ぜひ教えてください。ちなみに私は一応大学でC言語とJAVAをかじっていますが、こんな私にとって難易度はどんなものでしょうか??Cをしっていたら結構簡単と教科書にはかいてあるのですが・・・。

専門家に質問してみよう