- 1 名前:login:Penguin mailto:sage [2008/07/07(月) 20:45:18 ID:wYmB5VwU]
- おーくについて語りましょう
- 17 名前:login:Penguin mailto:sage [2008/07/09(水) 20:09:52 ID:r1P6Mjit]
- awk gawk jgawk やっぱり魅力はデータなめさせた時のスピード感
- 18 名前:login:Penguin mailto:sage [2008/07/09(水) 21:59:50 ID:2WqtvhnN]
- 適当なデータをSQLにして流すときとかに使ってる。
BEGIN/ENDのおかげでトランザクション使うのも簡単。
- 19 名前:login:Penguin mailto:sage [2008/07/09(水) 23:40:46 ID:ro47ZQt4]
- >>14
「プログラミング言語AWK」が絶版になると聞いてあわてて確保したが、すぐ再版された。
- 20 名前:login:Penguin [2008/07/20(日) 12:21:50 ID:j9YcHbCn]
- awk がなくなると困る・・・・・
Perlで$3 を表示しる!とかどーすんよ awk '{print $3}'
- 21 名前:login:Penguin mailto:sage [2008/07/20(日) 12:31:10 ID:/rTvaqQG]
- オークについて、おおくは語らねぇ
- 22 名前:login:Penguin mailto:sage [2008/07/20(日) 13:45:48 ID:ysRQGfiQ]
- >>20
perl -ane 'print $F[2], "\n"'でいいんじゃね?
- 23 名前:login:Penguin mailto:sage [2008/07/20(日) 22:40:15 ID:3uxKU7IE]
- >>22
なんかこう、Perlってスクリプトにエレガントさを感じないんだよな。つぎはぎが多い というか。 awkの場合、cに近いスタイルでありながらパターンマッチングとか連想配列の実装が エレガントだからコードを見ててきれいに感じる。
- 24 名前:login:Penguin mailto:sage [2008/07/20(日) 23:32:42 ID:j9YcHbCn]
- >>22 マジレス dd ちょっとやってみる(ヲイ
- 25 名前:login:Penguin mailto:sage [2008/07/21(月) 04:31:14 ID:RBm9osMs]
- perl の -n は各行に対しての処理、-e はスクリプトをファイルでなくその場でワンライナー書く為のものだが
-a オプションはやっぱり awk の名に由来するのかねぇ
- 26 名前:login:Penguin mailto:sage [2008/07/21(月) 10:22:28 ID:m3jpUYR9]
- >>25
autosplit modeってusageに書いてあるじゃん。
- 27 名前:login:Penguin mailto:sage [2008/07/22(火) 11:02:10 ID:oOCbPgMu]
- >26
いや名目上はそうだけどさ。 スクリプトでauto〜なんて言い出したらキリが無いワケじゃん。 ぶっちゃけ -n だって自動ループと言っちゃえばそうだし。 そこで -s や -p みたいな名前じゃなくて わざわざ -a にしたのは、やっぱ awk の名を意識したからなのかな、と 思ったんだよ。
- 28 名前:login:Penguin mailto:sage [2008/08/17(日) 18:47:40 ID:AZ0h4M4q]
- ruby -ne 'puts split[2]'のほうが楽、と思ったけど
空行とかでの扱い考えると ruby -ne 'puts split[2] || ""' になるのか。やっぱawkが楽だな。
- 29 名前:login:Penguin mailto:sage [2008/12/03(水) 10:54:22 ID:QXJz0hBL]
- sedのスレとかあったので、思わず「なんでawkを使わない?」って突っ込んでしまったけど、
実はおれも長らくsedからawkへ行けなかった。田中さん(緑のSerrow)が月刊asciiに書いた 記事を読んで使えるようになったのだった。 いまではperlも使うが、やはりawkが楽だなぁ。16進→10進変換の関数作ったり、 バイナリデータ読むためのコードをCで作ったりして無理やり使ってたころが 懐かしい。
- 30 名前:login:Penguin mailto:sage [2008/12/03(水) 23:47:03 ID:Thw8Gp7O]
- 2年くらい前からLinuxを本格的に使い始めたけど
awk(gawk)とsedには特に力を入れて勉強してる gawkは機能が洗練されて美しいし直感的で使いやすい リファレンスもとてもしっかりしてる
- 31 名前:login:Penguin mailto:sage [2008/12/09(火) 16:01:43 ID:NHdcSNGH]
- おれが一番よく使うのは連想配列。
gawk '{w[$1]++;}END{for(i in w)print i,w[i];}' xxxx.txt | sort みたいなことを何百回やったことか。
- 32 名前:login:Penguin mailto:sage [2009/04/21(火) 01:25:03 ID:8RfnrYFS]
- わらうw
ttp://awk.info/?doc/dsl/awkplusplus.html object_variable = class_name.new[(optional parameters)] object_variable.method_name(parameters) object_variable.delete
- 33 名前:login:Penguin mailto:sage [2009/04/21(火) 17:02:32 ID:CHFddJcj]
- みなさん教えて下さい。
一行毎に読み込み@<と@>で囲まれた部分を ランダムなアルファベット10文字に置換し、 元々@<@>に囲まれた部分の文字列と置換したランダムな文字列の対応を 別ファイルに書き出し っていうのをやりたいです。 awkとsedでできるの? pythonで書くべき?
- 34 名前:login:Penguin mailto:sage [2009/04/21(火) 18:09:12 ID:68A2ZTzG]
- できるっちゃーできるが、おすすめはしない。
BEGIN { output = "hoge.txt" chars = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz" len = length(chars) srand() } { if(match($0, /@<.*@>/)){ t = substr($0, RSTART+2, RLENGTH-4) if(!(t in m)) m[t] = rndstr(10) $0 = substr($0, 1, RSTART+1) m[t] substr($0, RSTART+RLENGTH-2) } print } END { for(i in m) print i, m[i] > output } function rndstr(n, s){ while(n--) s = s substr(chars, int(rand()*len)+1, 1) return s }
- 35 名前:login:Penguin [2009/05/08(金) 21:56:17 ID:uniCaTc9]
- まじぽかのUMAちゃんは最高にかわいいNE!
- 36 名前:login:Penguin mailto:sage [2009/07/08(水) 17:12:37 ID:nwzD2hQJ]
- printfと$ / $がうまく両立できない・・・
文型向け授業でわざわざlinux使わせるなよ・・・
- 37 名前:login:Penguin [2009/07/14(火) 15:14:45 ID:OYRFUc74]
- やっぱAWKいいよねー
「プログラミング言語AWK」は買い逃してたんで再販速攻で買ったよ。 Excelなんてやってられねーっつーの
- 38 名前:login:Penguin mailto:sage [2009/07/14(火) 15:45:04 ID:ZhPQ90qn]
- >>37
Excelのvlookupみたいなリレーショナルな事がやりたい場合ってどーしてる?
- 39 名前:login:Penguin mailto:sage [2009/07/16(木) 23:17:47 ID:up+KJ4E4]
- 連想配列でいいんちゃうん?
- 40 名前:login:Penguin mailto:sage [2009/07/18(土) 04:58:19 ID:p/gu39Bx]
- いやさ、複数のシートから引っ張ってくるような感じで、複数のテキストファイルを対象にしたい時。
- 41 名前:login:Penguin mailto:sage [2009/07/18(土) 15:26:29 ID:VCKoFo8D]
- そんなん普通に複数ファイル処理すればいいやん。
- 42 名前:login:Penguin mailto:sage [2009/07/18(土) 16:20:59 ID:p/gu39Bx]
- >>41
> そんなん普通に複数ファイル処理すればいいやん。 「普通に」の所kwsk
- 43 名前:login:Penguin mailto:sage [2009/07/18(土) 21:51:54 ID:VCKoFo8D]
- getlineすりゃえーやろ
- 44 名前:login:Penguin mailto:sage [2009/07/19(日) 04:55:45 ID:TalGZSOR]
- awk初心者です。質問させてください。
awkでアクセスカウンタを作ろうと思い、 以下のようなスクリプトを書いたのですが、 最後のhtmlへの出力(表示)の方法がわかりません。 どうしたらいいのでしょうか?
- 45 名前:44 [2009/07/19(日) 04:57:30 ID:TalGZSOR]
- BEGIN{
#プロセスロック lock() #カウント数の読み込み while (getline < count.dat > 0){ before_count = $1; } close(count.dat); #カウントを1進める new_count = before_count + 1; #数字の置換を行う sub(before_count, new_count, $1); #プロセスロック解除 unlock() }
- 46 名前:44 [2009/07/19(日) 04:58:33 ID:TalGZSOR]
- print "Context-Type: text/text";
print "\r"; END{ #表示テンプレートの読み込み while (getline < count.txt > 0){ txt_file[++i] = $0; } close(count.txt); #あらかじめセットしてあるテンプレート上の文字列を置換 gsub("<!--#count.cgi--!>", new_count, $0); print $0; }
- 47 名前:login:Penguin mailto:sage [2009/07/19(日) 11:16:35 ID:xa/YVpR4]
- >>43
getline知らなかったわ。 難しそうだな・・・
- 48 名前:login:Penguin [2009/07/19(日) 15:13:23 ID:Ge8Nt7Pt]
- >>44
SSIの仕組みは理解できていますか。 ttp://httpd.apache.org/docs/2.0/ja/howto/ssi.html
- 49 名前:hogehoge mailto:sage [2009/07/21(火) 14:50:51 ID:PUGBjRE4]
- getline は毎回リファレンス見に行ってるなぁ
頭が劣化しとるわー
- 50 名前:login:Penguin mailto:sage [2009/08/01(土) 15:31:08 ID:z6H8O5Sr]
- こんなものが落ちてたw
ttp://mitya.pp.ru/chamberlen/assorted/OReilly%20-%20Sed%20&%20Awk%202nd%20Edition.pdf
- 51 名前:login:Penguin mailto:sage [2009/08/15(土) 20:33:21 ID:7GY0b2Yy]
- Mac OS X Leopard 10.5.8でjgawkを使いたいのです。
ターミナルでawk '{print $0}' filenameですと日本語が悲しいです。 お使いのみなさん、使用法等教えて下さい。
- 52 名前:login:Penguin mailto:sage [2009/08/19(水) 18:02:30 ID:GJ3CGMhT]
- 板違い。
- 53 名前:login:Penguin mailto:sage [2009/08/22(土) 09:19:23 ID:rmix/tng]
- Mac OS XをUnixとして使ってる人の為のスレ その15
pc11.2ch.net/test/read.cgi/mac/1247059597/ こっちのが詳しいかもね
- 54 名前:正月前 mailto:zzhong33@yahoo.co.jp [2009/12/29(火) 22:19:45 ID:UAwxD9+5]
- awk初心者です。
awkにはperlのjoinみたいの関数ありますか? perl: print join(":",$_);
- 55 名前:login:Penguin mailto:sage [2009/12/30(水) 01:06:12 ID:Q1gMau4C]
- データ集計に便利
- 56 名前:login:Penguin mailto:sage [2009/12/30(水) 01:44:22 ID:jMgIWDpO]
- >>54
BEGIN {OFS=":"}{$1=$1;print}
- 57 名前:正月前 [2009/12/31(木) 16:45:37 ID:z/pUNj8p]
- 重複を削除するBASHスクリプトに、perlの部分はawkの連想配列で書き換えたいんですが、splitした後の処理方法が分かりません
教えて頂ければ幸いです。 ----------------------------- hoge='a:b:c:d:a:b:c:d:a' echo -n $hoge | perl -F: -ane 'chop;foreach(@F){$s{$_}++ or push(@b,$_)}print join(":",@b)' -----------------------------
- 58 名前:login:Penguin mailto:sage [2010/01/05(火) 11:48:18 ID:iQ1ypvd/]
- 素人なりですけど
echo -n $hoge | awk 'BEGIN{OFS=":"}{n=split($0,a,":");m=1;for(i=1;i<=n;i++){if(!(a[i]in b)){$m=a[i];b[$m]++;m++}}print}'
- 59 名前:login:Penguin mailto:sage [2010/01/05(火) 12:34:43 ID:APedkSZb]
- echo -n $hoge | awk 'a[$0]++<1{printf(NR>1?RS:_)$0}' RS=:
- 60 名前:login:Penguin mailto:sage [2010/01/05(火) 12:50:31 ID:APedkSZb]
- a[$0]++<1 じゃなくて
!a[$0]++ とした方が1バイト短くなるな って、そういう趣旨じゃないか
- 61 名前:login:Penguin mailto:sage [2010/01/08(金) 21:03:31 ID:pPQjxZAI]
- プログラミングAWK 3度目の復刊
www.fukkan.com/fk/CartSearchDetail?i_no=68313239&tr=t
- 62 名前:正月前 mailto:zzhong33@yahoo.co.jp [2010/01/11(月) 22:20:00 ID:jx5sxsA2]
- >>58,59,60
ご回答、誠に有難うございました! まだawkの部分理解してないけど、期待通りの動作が確認できました!
- 63 名前:login:Penguin mailto:sage [2010/03/16(火) 14:08:38 ID:hRXCRI1I]
- Linuxじゃないんですが、Gawk on Windowsだと、
gawk '{print $1;}' data.txt ていうのは、クォーテーションはダブルにしないといけないんですね。。。
- 64 名前:login:Penguin mailto:sage [2010/03/16(火) 14:27:11 ID:OV90ZKd/]
- うん、引数文字列をどう解釈するかは awk じゃなくてシェルだから。
cmd.exe の仕様の問題であって、awk の側では対応しようにもできない。
- 65 名前:login:Penguin [2010/05/14(金) 13:36:36 ID:XjQaHos9]
- BEGIN {
printf "256倍のコードが提供されてる\n" printf "ttp://books.ascii.jp にアクセス\n" printf "本には4756101623なんてのがついてるけど、本の通りに入れるとnot found\n" } END { print "昔と本の内容が変わってるみたいだな" }
- 66 名前:login:Penguin mailto:sage [2010/05/14(金) 21:49:15 ID:KfNsslph]
- END {
print "まだ始まってもねーよっ!" } BEGIN { printf "・・・ごめ・・・\n" }
|

|