- 1 名前:デフォルトの名無しさん mailto:sage [2007/02/23(金) 23:55:42 ]
- 腐っても鯛? 騏も老いては駑馬に劣る?
三人の碩学が生み出したスクリプト言語AWKについて語るスレ ◆ 前スレ awkについて語るスレ pc10.2ch.net/test/read.cgi/tech/1023556171/ ◆ 関係スレ シェルスクリプト相談室 pc10.2ch.net/test/read.cgi/tech/1112553783/ AWKでCGI pc10.2ch.net/test/read.cgi/php/1171804314/ 【sed】シェルスクリプト総合@LINUX Part2【awk】 pc10.2ch.net/test/read.cgi/linux/1154578200/ ◆ 参考 The AWK Programming Language (Brian Kernighan): ttp://cm.bell-labs.com/cm/cs/awkbook/index.html GAWK (GNU Projedt): ttp://www.gnu.org/software/gawk/
- 2 名前:デフォルトの名無しさん mailto:sage [2007/02/24(土) 00:04:13 ]
- awking shoes
- 3 名前:デフォルトの名無しさん mailto:sage [2007/02/24(土) 00:24:49 ]
- オーク
オーク オーク 奥さん
- 4 名前:デフォルトの名無しさん mailto:sage [2007/02/24(土) 01:35:13 ]
- 多くは語るまい。
Mawk - Mike' AWK gnuwin32.sourceforge.net/packages/mawk.htm
- 5 名前:デフォルトの名無しさん mailto:sage [2007/02/24(土) 23:32:05 ]
- いや多くを語ってくれ
- 6 名前:デフォルトの名無しさん [2007/02/25(日) 06:34:37 ]
- ローカル変数、。
- 7 名前:デフォルトの名無しさん [2007/02/27(火) 21:39:18 ]
- クロージャを持ったawk実装とかないかね
- 8 名前:デフォルトの名無しさん [2007/02/27(火) 23:45:59 ]
- コマンドプロンプトでちょちょっと使うことは頻繁にあるけど
気合い入れてプログラミングするってのは最近無くなった。
- 9 名前:デフォルトの名無しさん mailto:sage [2007/02/28(水) 00:13:16 ]
- >>7
前スレにObjective awkが実在するかのような話があるがネタだろう。 実用性を無視すればawk自身で書くことも不可能ではないかもしれない。 お望みに一番近い実装は、実はJavaScriptではないかと。 developer.mozilla.org/ja/docs/New_in_JavaScript_1.7
- 10 名前:デフォルトの名無しさん mailto:sage [2007/03/01(木) 00:43:46 ]
- トッパンのプログラミング言語AWKがブックオフで105円で叩き売られてるのを見て
なんか悲しい気分になった
- 11 名前:デフォルトの名無しさん mailto:sage [2007/03/01(木) 16:01:47 ]
- >>10
俺もオライリーの「sed & awk プログラミング」本が、図書館の「無料で持ってけー棚」 にあったので、即 GET した。まあ、かなり古い本(1991 年)だけど、内容はいい本だ。 定価 \3800 円のバカ高本で、 たぶん、新書では買わなかっただろう。 トッパンのプログラミング言語AWKって、いつごろの本だったけ。とりあえず、105円なら 欲しいっす。
- 12 名前:デフォルトの名無しさん mailto:sage [2007/03/01(木) 21:49:42 ]
- >>11
赤い表紙の第1版だねきっと。 緑の表紙の第2版が手元にあるけど、gawkで拡張されている 正規表現の説明とか増えてて第2版のほうがお勧め。 ちなみに定価4100円なり。
- 13 名前:11 mailto:sage [2007/03/01(木) 23:52:54 ]
- >>12
> 赤い表紙の第1版だねきっと。 そう、それそれ。 ほんで、 gensub がない。もちろん、 /inet/..... |& .... もない。 最近、/inet/..... |& .... がある(gawk3.1 から)ことを知って、gawk を見直している。 使い捨てのプログラムは gawk に汁!!。
- 14 名前:デフォルトの名無しさん mailto:sage [2007/03/02(金) 02:09:03 ]
- >>11
トッパンの最初の本なら確か1990年の春頃だったと思う。 一応nawkレベルの記述のはずなんで、gawkなんかの固有の 拡張を除けば十分使えるでしょ。 105円は…ちと悲しいけどいい人に拾われて欲しいねえ。
- 15 名前:デフォルトの名無しさん mailto:sage [2007/03/02(金) 02:27:22 ]
- >>13
gawkの /inet 拡張ってイマイチ使いづらくね? 汎用的なのかもしれないけど、お手軽にhttp経由でwebページの 内容取れればいいってときに記述が面倒。
- 16 名前:デフォルトの名無しさん mailto:sage [2007/03/04(日) 00:06:22 ]
- >>15
単純に gawk '{print $0}' foo.org/index.html とかでシームレスにアクセスできるというほうが便利なのかな?
- 17 名前:デフォルトの名無しさん mailto:sage [2007/03/04(日) 00:24:42 ]
- www.gnu.org/software/gawk/manual/gawkinet/gawkinet.html#Web-page
から、簡単な例。 BEGIN { RS = ORS = "\r\n" HttpService = "/inet/tcp/0/www.yahoo.com/80" print "GET www.yahoo.com" |& HttpService while ((HttpService |& getline) > 0) print $0 close(HttpService) }
- 18 名前:デフォルトの名無しさん mailto:sage [2007/03/04(日) 00:38:54 ]
- awkでSQLのleftjoinみたいなことできる?
- 19 名前:デフォルトの名無しさん mailto:sage [2007/03/04(日) 01:55:43 ]
- >>17
なんじゃこりゃ。 wget -O - www.yahoo.com/ の出力を読むのと全然変わらんな。
- 20 名前:15 mailto:sage [2007/03/04(日) 03:46:24 ]
- >>16
まあ wgetとかcurl使って標準入力から取れよという話もあるかもしれないけど、 http://ほげほげ は特別扱いしてくれるとうれしいなあと思ってる。 まあHTML読んでそれを解析する手間が次に待ってるけどさw
- 21 名前:デフォルトの名無しさん mailto:sage [2007/03/04(日) 03:55:11 ]
- エンコーディング対応とか色々考えると、awkでHTMLを処理しようとするほうが
無理がある感じ。 素直にPではじまる言語とか使っとけば?みたいな。
- 22 名前:19 mailto:sage [2007/03/04(日) 04:55:31 ]
- >>21
PとかR使えってのはまあそうなんだけど、HTMLの妥当性とかエンコーディングを気にしないで いい使い道で考えてた(個人的にそういう需要がある)のでね。 HTMLに関してはきちんとしたドキュメントならxgawkでどうにかなる?
- 23 名前:デフォルトの名無しさん mailto:sage [2007/03/14(水) 16:26:36 ]
- 昔、Fortran、Cぐらいしか知らなかった時、
「えっ、こんな数行で計算出来るの?」 「プログラム内にファイル名書かなくて良いの?」 「この数行で、すべてのデータの計算してくれるの?」 って、驚きながら友人に教えてもらいました。 今なら、Excelでするような計算はすべてawkでしてました。 アスキーから256倍シリーズが出たぐらいだから 注目の言語だったんだよね。
- 24 名前:デフォルトの名無しさん mailto:sage [2007/03/14(水) 16:40:22 ]
- Visicalcと1-2-3はawkブームより昔からあったんだけどね。
UNIXって意外と古くないんだよね。
- 25 名前:デフォルトの名無しさん mailto:sage [2007/04/14(土) 08:00:42 ]
- >10
発行所が新紀元社の「プログラミング言語AWK」を2005年に定価3465円(税込)で買いました。 奥付に「本書は1989年11月に株式会社トッパンより発行されました。この度、株式会社新紀元社より、原出版社、訳者の許可を得て再発行いたしました。」と書かれています。
- 26 名前:デフォルトの名無しさん mailto:sage [2007/04/14(土) 09:43:47 ]
- 新紀元社ってRPGの本しか出してないと思ってたから意外だ。
- 27 名前:デフォルトの名無しさん mailto:sage [2007/04/14(土) 13:42:47 ]
- 大昔に通ってた高専の土木工学科にはawkの授業があった
実験のデータ処理にでも使ってほしかったんだろう
- 28 名前:デフォルトの名無しさん mailto:sage [2007/04/16(月) 17:34:08 ]
- >24
awkブームは、西暦だと何年頃でしょうか?
- 29 名前:デフォルトの名無しさん mailto:sage [2007/04/17(火) 00:31:15 ]
- >>28
DOS末期。256倍本が出た93年頃がピークでは。 後のPerlとは比較にならないプチブームだけど。
- 30 名前:28 mailto:sage [2007/04/17(火) 08:45:33 ]
- >29
御回答ありがとうございます。
- 31 名前:デフォルトの名無しさん mailto:sage [2007/05/04(金) 21:28:49 ]
- 最近の情報は、こちら!
ttp://gauc.no-ip.org/
- 32 名前:デフォルトの名無しさん mailto:sage [2007/07/14(土) 08:27:58 ]
- 鬼車awkを誰か作ってくれないかなー
- 33 名前:デフォルトの名無しさん mailto:sage [2007/07/15(日) 03:17:40 ]
- >>32
いいこと言うねぇ。 賛成!
- 34 名前:デフォルトの名無しさん mailto:sage [2007/09/03(月) 08:59:45 ]
- あとローカル変数が欲しいな
- 35 名前:デフォルトの名無しさん mailto:sage [2007/09/03(月) 10:30:14 ]
- functionの中はローカル変数になるよ。
- 36 名前:デフォルトの名無しさん mailto:sage [2007/09/04(火) 00:12:17 ]
- いつから?未だに引数に並べるもんだと。
- 37 名前:デフォルトの名無しさん mailto:sage [2007/09/04(火) 09:33:02 ]
- あー、ごめん、引数並べたやつがローカル変数になる。だった。
先に宣言すればいいんだから別によくね?
- 38 名前:デフォルトの名無しさん mailto:sage [2007/09/09(日) 04:42:02 ]
- キモいやん。そのやり方。
- 39 名前:デフォルトの名無しさん [2007/09/14(金) 04:37:24 ]
- これからawkを勉強します。
- 40 名前:デフォルトの名無しさん mailto:sage [2007/09/14(金) 09:05:13 ]
- awkを学ぶことになるでしょう。
- 41 名前:デフォルトの名無しさん [2007/09/15(土) 01:03:04 ]
- みなさんawkは語らないのですね。
- 42 名前:デフォルトの名無しさん mailto:sage [2007/09/15(土) 10:28:44 ]
- 船頭awkして船山に登る。
- 43 名前:デフォルトの名無しさん mailto:sage [2007/09/16(日) 03:03:51 ]
- 人に言えるほどawk知ってる訳でも無いし
- 44 名前:デフォルトの名無しさん mailto:sage [2007/09/16(日) 10:27:22 ]
- だけど人の話は聞きたいし
- 45 名前:デフォルトの名無しさん mailto:sage [2007/09/17(月) 18:12:15 ]
- awkぼ利通
- 46 名前:cat.awk mailto:sage [2007/09/19(水) 08:55:44 ]
- 1
- 47 名前:デフォルトの名無しさん [2007/09/19(水) 16:41:49 ]
- awkを勉強しているのですが、Perlに慣れているからか
awkでできることはPerlでワンライナーでやったほうが(少なくとも自分にとっては)速い気がしてなりません。 これについてawk熟練者である皆様はいかがお考えになりますか? こういう時はawkのほうが便利!という例にはどんなものがありますか?
- 48 名前:デフォルトの名無しさん [2007/09/19(水) 16:43:11 ]
- ↑あっ速いというのは、コードを書くのが速いという意味です。
- 49 名前:デフォルトの名無しさん mailto:sage [2007/09/19(水) 16:48:06 ]
- >>47
perl はなくても awk なら入っている事がある
- 50 名前:デフォルトの名無しさん mailto:sage [2007/09/19(水) 16:53:58 ]
- 「コードを書くのが速い」という基準で、
「こういう時はawkのほうが便利」という例を他人に挙げさせても、 それはその人間にとっての速い気がする便利さであって、 意味のある一般的な議論にならないのではないか?
- 51 名前:デフォルトの名無しさん mailto:sage [2007/09/19(水) 16:57:51 ]
- PerlもRubyもPythonも使うけど、特定のカラムだけに興味があるケースは
無意識にawkを使うこともある。 perl -a とか cutしてpasteとかもあるけど。
- 52 名前:デフォルトの名無しさん [2007/09/19(水) 18:19:27 ]
- >>49 環境によらず入っているということですね。
>>50 そうですね。 なぜawkなのか、 一般的にはどういう時にawkが使われるのか、 というのがイマイチ自分のなかで分かっていないのです。 >>51 少し勉強した限りでは、確かにカラムの取り出しはawkが便利なのかもと思いました。
- 53 名前:デフォルトの名無しさん mailto:sage [2007/09/19(水) 19:55:33 ]
- >>52
シェルスクリプトの中で、貧弱なシェルの計算能力を 補うために、ツールボックスの一つとして使われることが多い。 ので、シェルスクリプトを書く機会が多いのなら、やっておいて 損は無いと思うが、フットプリントが多少デカイこととやや移植性に 欠けることを気にしなければ、別にPerl使ったっていいわけだ (どうせ今なら大抵は使えるだろうし、awkにしても一応Posix標準だが 色々変種がある)。 ま、単に便利なスクリプト言語が欲しいだけなら、今更awkをやる意味は ほとんどないだろう。 フィールド分割だけならperl -aでawkの真似ができるしな。
- 54 名前:デフォルトの名無しさん [2007/09/19(水) 20:06:52 ]
- >>53 丁寧なお返事ありがとうございます。
シェルの計算の補助ですか。 シェルスクリプトを書く機会は多少はあるので、多少は覚えておこうと思います。
- 55 名前:デフォルトの名無しさん mailto:sage [2007/09/19(水) 21:00:04 ]
- awkとperl、処理速度はどっちが速いんだろ?
ってオマエが試せって言われそうだけどふと思ったんで書いてみた。
- 56 名前:デフォルトの名無しさん mailto:sage [2007/09/19(水) 22:17:45 ]
- awkは処理系多いからなぁ
何の処理かにもよるだろうし
- 57 名前:デフォルトの名無しさん mailto:sage [2007/09/19(水) 23:45:00 ]
- どちらも得意とする単純なテキストのフィルタリング処理なら、
I/O速度で制限されるのでどちらでも(或いはsedを持ち出しても)大して変わらないと思う。 awkの真骨頂は一行野郎にあると思う私は、こんなのをよく書き捨てる。 -- awk 'BEGIN {print 1+2*3-4;}' ls -l /tmp|awk '$5>0' ls -l |awk '{sum+=$5;} END{print sum;}'
- 58 名前:デフォルトの名無しさん mailto:sage [2007/09/19(水) 23:51:16 ]
- PerlにたいするAwkの現実的メリットはメモリ消費が少ないことくらいで
これは今の計算機では微々たる問題だ。 ESRのArt of UNIX Programmingを立ち読みしたら Awkがメモリ節約のために仕様を制限したことが 早期に競争力をなくした理由と論じていた。 バッドな言語設計の見本って感じで、ちと不愉快だった
- 59 名前:デフォルトの名無しさん mailto:sage [2007/09/22(土) 02:28:36 ]
- >>57
俺も時々やる。 その時は便利!と思って.cshrcとかにalias登録するけどすぐに忘れて同じ内容を手打ちしてたりする その挙句にこれは便利!と思って.cshrc開くと既に登録してあるという…
- 60 名前:デフォルトの名無しさん mailto:sage [2007/09/22(土) 09:21:37 ]
- >>59
全俺が共感した。
- 61 名前:デフォルトの名無しさん mailto:sage [2007/09/24(月) 12:01:33 ]
- (.cshrcを.bashrcに置き換えて) 俺も同じ経験がある。
- 62 名前:デフォルトの名無しさん mailto:sage [2007/09/28(金) 00:37:50 ]
- 「一行野郎」は名訳
- 63 名前:デフォルトの名無しさん mailto:sage [2007/09/28(金) 01:20:24 ]
- むかし、「読書するプログラマ」をよんで、awkで会計をするのがかっこ良いと
おもってました。 でも確定申告をする身になったらEXCELを使っている。 「エンジニアのための事務作業 sed awk grep そしてTex」なんて書籍があれば食いつくのに...
- 64 名前:デフォルトの名無しさん mailto:sage [2007/09/28(金) 02:53:12 ]
- awkで会計用スクリプトを書くより、会計のしくみを理解することの方が
俺には遥かに難しい
- 65 名前:デフォルトの名無しさん mailto:sage [2007/09/28(金) 14:47:04 ]
- Perlだけど、これは?
www.moge.org/okabe/temp/balance/
- 66 名前:デフォルトの名無しさん mailto:sage [2007/10/02(火) 02:19:46 ]
- Perl はコード一目見て俺がcore吐きそうになる
- 67 名前:デフォルトの名無しさん mailto:sage [2007/10/02(火) 07:50:30 ]
- 任意に core が吐けたら便利だよな。日記代わりになる。
- 68 名前:デフォルトの名無しさん mailto:sage [2007/10/02(火) 08:00:10 ]
- >>67
体型維持のために余儀なくされている人もいたようです。 指を喉に入れるようにするので、俗に言うげろだこが指にできます。
- 69 名前:デフォルトの名無しさん [2007/10/03(水) 23:18:59 ]
- awkってなんでPerl風に正規表現置換できるようにならんの。独自拡張でもいいんだけどな。
- 70 名前:デフォルトの名無しさん mailto:sage [2007/10/04(木) 02:48:29 ]
- >>69
ん、くわしく。 Perlのメタ文字を使いたいというのとは違うの? #使えんわけだが
- 71 名前:デフォルトの名無しさん mailto:sage [2007/10/04(木) 21:53:48 ]
- awkはDFAでperlはNFAだっけか?
- 72 名前:デフォルトの名無しさん mailto:sage [2007/10/05(金) 02:45:00 ]
- >>71
オリジナルではね。 中にはNFAを使っているawkもある。mawkとか。
- 73 名前:デフォルトの名無しさん [2007/11/22(木) 06:36:33 ]
- xgawkで多倍長整数を使いたいんですが、
printf( "%ld\n", num ); では桁数は増えても精度は上がってないようです。 型宣言するにはどうするのでしょうか
- 74 名前:デフォルトの名無しさん mailto:sage [2007/11/22(木) 07:17:23 ]
- >>73
多倍長整数を実装するのに個別の精度を上げてどうする。
- 75 名前:デフォルトの名無しさん mailto:sage [2007/11/22(木) 07:34:48 ]
- xgawkは多倍長整数あるんですよね?
で、rubyのように無宣言で使えるかと思ったらそうではないらしいので、 どうするのかと。 home.vrweb.de/~juergen.kahrs/gawk/XML/xmlgawk.html いまこのへん見てるんですが
- 76 名前:デフォルトの名無しさん mailto:sage [2007/11/22(木) 08:47:49 ]
- MPFR,多倍長整数ではなく実数かな。
ググって見つけました。 www.kt.rim.or.jp/~kbk/zakkicho/zakkicho7.html#D060126 golf.shinh.org/p.rb?Factorial 実はこれやってるんですが。 あとはdllのパスが分かれば・・・
- 77 名前:デフォルトの名無しさん mailto:sage [2007/11/26(月) 21:13:28 ]
- >>76
「あなごる」の xgawk は MPFR 積んでないと思うが・・・。
- 78 名前:デフォルトの名無しさん mailto:sage [2007/11/29(木) 08:00:03 ]
- そうですか
どちらにしても実数って事はやっぱ無理な気がしました
- 79 名前:デフォルトの名無しさん mailto:sage [2008/01/04(金) 07:28:20 ]
- sedみたいに、パターン部分を行番号で指定出来ませんか?
- 80 名前:デフォルトの名無しさん mailto:sage [2008/01/04(金) 09:32:19 ]
- >>79
awk 'NR == 79 {print;}' ってこと? それとも、 awk 'FNR == 79 {print;}' ってこと?
- 81 名前:デフォルトの名無しさん mailto:sage [2008/01/04(金) 14:24:54 ]
- >80
はじめsedみたいに 10,35{ みたいな感じに書いてダメだったので; } 普通に比較式書くんですね。10<=NR&&NR<=35{ で出来ました; } ありがとうございます。
- 82 名前:デフォルトの名無しさん mailto:sage [2008/01/05(土) 00:50:26 ]
- >>81
もう少し sed らしくしたいなら、 10==NR, NR==35 { print } なんてのもあり
- 83 名前:デフォルトの名無しさん mailto:sage [2008/01/14(月) 09:02:50 ]
- awk はオプションなしだとワンライナーのコードを書くことになると思いますが
実際 awk のワンライナーってどんな時に使いますか? あまり見たことがなくて…
- 84 名前:デフォルトの名無しさん mailto:sage [2008/01/14(月) 09:45:08 ]
- >>83
UNIXでは多くのファイルや出力が欄区切りテキストの形式になっているから その場使い捨てワンライナーが本来の使い方なんだけど、 他のOSだと BEGIN を main 代わりに使うようなのばっかになるかもね。
- 85 名前:デフォルトの名無しさん mailto:sage [2008/01/14(月) 09:46:06 ]
- >>83がsedをどう使っているのか気になる。
sedスクリプトファイルとか作って、スクリプトの引数に処理対象のファイルを渡してたりするのかな。
- 86 名前:デフォルトの名無しさん mailto:sage [2008/01/14(月) 10:18:29 ]
- よく書く一行野郎。
-- du -sk /tmp/* | awk '{sum += $1;} END {print sum / NR;}' # まぁ、duってのは今思いついただけで、実際にduの出力の平均を取ることはないけどね。 -- paste foo bar | awk '($1 - $2) > 1e-3 || ($1 - $2) < -1e-3 {print NR, $0;}' # 一致を見るだけならdiffでいいけど、近似を見るには使えないんで。
- 87 名前:デフォルトの名無しさん mailto:sage [2008/01/15(火) 18:34:44 ]
- >>85
sedは単体の命令を見て「置換」「行の切り捨て」みたいな用途が パッと見て思い付くので疑問は沸かないんです。 awkはひとつひとつの命令を見ても 普通にスクリプト言語の命令としか思えないので 「コード書くならともかく、ワンライナーでどう使うの?」と 疑問をもってしまうんです。 >>86 う〜ん、結構複雑になりますね。 それだと私ならターミナルに書かずに コードに起こしてしまいそうです。 でも、パターンとフィールドを上手く使えば 色々出来る気がしてきました。 例をありがとうございます。
- 88 名前:デフォルトの名無しさん mailto:sage [2008/01/15(火) 18:59:18 ]
- あ、コード書きそうなのは後者です。
平均とか合計みたいなモノには良さそうですね。
- 89 名前:デフォルトの名無しさん mailto:sage [2008/01/15(火) 19:28:50 ]
- 今日書いた一行野郎。
-- awk '{for (ic = 1; ic <= NF; ++ic) {if (max < $ic) max = $ic;}} END {print max;}' -- これも全フィールドに拡張しているだけで、単に最大値を得ているだけだね。
- 90 名前:デフォルトの名無しさん [2008/01/22(火) 16:52:32 ]
- よく書く一行
du -k|awk '$1 > 10000' でかいデレクトリをさがす
- 91 名前:デフォルトの名無しさん mailto:sage [2008/01/29(火) 23:34:51 ]
- 俺がよく書く一行野郎
$ awk 1 > hoge.sh
- 92 名前:デフォルトの名無しさん mailto:sage [2008/01/31(木) 12:58:14 ]
- >>91
それに何の意味が? cat > hoge.shでも事が足りそうだが。
- 93 名前:デフォルトの名無しさん mailto:sage [2008/01/31(木) 18:48:07 ]
- >92
Windowsにawk入れてた時に、こんなヘンな癖が付いてしまった。
- 94 名前:デフォルトの名無しさん [2008/02/02(土) 12:38:28 ]
- すみません、初心者ですがawkに関するスレがここしかなかったので。
↓のソースを書いていただいたのですが、いったいどうすれば使えるのでしょうか? ちなみに、これはフォルダ内のWinrar形式ファイルのリカバリレコードが付いているか否か リストを一括で出力するものです。 よろしこ ************** コマンドラインだけどunrar lt sample.rarの出力利用してリストを作るだけ 使い方はパイプでawkに渡して処理unrar lt *.rar | gawk -f rr.awk awkなんか入ってないだろうから当然そのままじゃ動かない rr.awk #!/usr/local/bin/gawk BEGIN {$rr=0; printf "%-30s\t%s\n", "FileName", "RecoveryRecord";} {if($1=="Solid" && $2=="archive"){ for(i=3;i<=NF;i++) printf "%-30s ",$i;printf "\t";getline;getline; if($0=="Recovery record is present"){printf "Yes / "; for(;;){getline;if($0=="Data header type: RR"){getline;printf "%sbyte\n",$2;break;}} }else printf "No\n";}}
- 95 名前:デフォルトの名無しさん mailto:sage [2008/02/02(土) 13:01:48 ]
- それを動かすにはまず gawk をどこかから入手する。
- 96 名前:デフォルトの名無しさん mailto:sage [2008/02/02(土) 17:48:45 ]
- >>94
>↓のソースを書いていただいたのですが、 書いた人に聞く。 と答えると、わけのわからん理由を言ってごねるだろうから、 先に言っとくと、そんな見苦しい言い訳するな。 どうせ答えたって、今度は○○がわかりませんとか言い出すんだろ? どっかからgawkを落として展開しろよ。全く、一生ググってろよカス "C:\Program Files\WinRAR\UnRAR.exe" lt *.rar | "gawkのフルパス" -f rr.awk
- 97 名前:デフォルトの名無しさん mailto:sage [2008/02/10(日) 19:16:33 ]
- すいません、あるテキストを{print $1,$2}として抽出して
aaa 1 aaa 2 aaa 3 bbb 1 bbb 2 ccc 1 ccc 4 ... とまではできたんですが、並んでいるデータをそれぞれ、 aaa 6 bbb 3 ccc 5 と集計したいんですが、どのようにすればいいでしょうか?
- 98 名前:デフォルトの名無しさん mailto:sage [2008/02/10(日) 19:28:07 ]
- awk '{count[$1] += $2;} END{for (aaa in count) {print aaa count[aaa]}}'
あとはソートすればいいはず
- 99 名前:97 mailto:sage [2008/02/10(日) 20:22:03 ]
- >98さん、ありがとうございます!
情けないのですが、今まで便利なツールに頼っていて全然コマンドについて理解できていなかったので困っていました。 実はメールログで送信者がどれだけの通数を送信してるかを確かめるためにコマンドでできないか、で>97でつまづいていました。 何とか途中までできたんですが、非常にスーパーエレガントな1行コードでして…。 質問ついでで申し訳ないのですが、 (aaa in count) {print aaa count[aaa]} のaaaについてはどう解釈すればいいのでしょうか?
- 100 名前:デフォルトの名無しさん mailto:sage [2008/02/10(日) 20:33:27 ]
- >>99
bashとかのforとかと同じで適当な文字列ならなんでもいいです.例に出てきたaaaなんかにするからややこしくなってすみません. for(hoge in list) {...} で配列listのキーを片っ端からhogeに入れてループするって意味になるはずですよ.
|

|