トップページlinux
197コメント61KB

awk ファンクラブ

■ このスレッドは過去ログ倉庫に格納されています
0001login:Penguin2008/07/07(月) 20:45:18ID:wYmB5VwU
おーくについて語りましょう
0002login:Penguin2008/07/07(月) 20:52:18ID:7N4CeYxI
awkは言わねえ、たった一行・・・
0003login:Penguin2008/07/07(月) 20:55:08ID:64cKGfca
オークは便利だオーク
0004login:Penguin2008/07/07(月) 21:21:04ID:Bjq85S2V
sedファンクラブからきました。
0005login:Penguin2008/07/07(月) 21:35:44ID:rSMtL5cT
ls -ltr | awk '{print $8}'
0006login:Penguin2008/07/07(月) 21:50:35ID:XFLIMsgD
aho
wainberg
kernihan
0007login:Penguin2008/07/07(月) 22:39:16ID:/5MnC3tB
awkでなんでもやるのって年がバレそうだなあ。ちょっと下の世代だとperlだろうし。
0008login:Penguin2008/07/08(火) 00:19:21ID:9/fi698j
ttp://text.world.coocan.jp/TSNET/tsc/tsc_1.1.003.pdf
0009login:Penguin2008/07/08(火) 01:19:20ID:yAMbUEpf
しばらくしたら,perlでなんでもやるのって年がバレそうだなあ。ちょっと下の世代だとpythonだろうし。ってなるんだろうな
0010login:Penguin2008/07/08(火) 10:32:21ID:YEHCkTi1
下の世代はpythonよりrubyじゃないか?

自分の場合、全部シェルスクリプトだけどw
0011login:Penguin2008/07/08(火) 12:50:38ID:6brAoz3h
perl->pythonときてawkの便利さに気付いた。
0012login:Penguin2008/07/08(火) 16:47:52ID:TJw2Mlna
awk, perlユーザだが次はpythonとやらをいじってみるかね
0013login:Penguin2008/07/09(水) 19:51:11ID:r1P6Mjit
awkを256倍はみなさん持ってます?ここがすべての始まりだったなあ
0014login:Penguin2008/07/09(水) 19:52:45ID:+TY8Gpg6
オライリーのsed&awkがはじまりだったなあ・・・
んでもってx68kで遊んでいたw
0015login:Penguin2008/07/09(水) 19:55:00ID:0dhBqlXX
俺はrubyとpython両方使ってる。
rubyはワンライナー〜十数行のスクリプト。
pythonは数十行〜数百行のスクリプト。
0016login:Penguin2008/07/09(水) 20:03:27ID:Glf+LFW9
そんな昔にawkとかと出会えた人が羨ましい
0017login:Penguin2008/07/09(水) 20:09:52ID:r1P6Mjit
awk gawk jgawk やっぱり魅力はデータなめさせた時のスピード感
0018login:Penguin2008/07/09(水) 21:59:50ID:2WqtvhnN
適当なデータをSQLにして流すときとかに使ってる。
BEGIN/ENDのおかげでトランザクション使うのも簡単。
0019login:Penguin2008/07/09(水) 23:40:46ID:ro47ZQt4
>>14
「プログラミング言語AWK」が絶版になると聞いてあわてて確保したが、すぐ再版された。
0020login:Penguin2008/07/20(日) 12:21:50ID:j9YcHbCn
awk がなくなると困る・・・・・
Perlで$3 を表示しる!とかどーすんよ

awk '{print $3}'
0021login:Penguin2008/07/20(日) 12:31:10ID:/rTvaqQG
オークについて、おおくは語らねぇ
0022login:Penguin2008/07/20(日) 13:45:48ID:ysRQGfiQ
>>20
perl -ane 'print $F[2], "\n"'でいいんじゃね?
0023login:Penguin2008/07/20(日) 22:40:15ID:3uxKU7IE
>>22
なんかこう、Perlってスクリプトにエレガントさを感じないんだよな。つぎはぎが多い
というか。

awkの場合、cに近いスタイルでありながらパターンマッチングとか連想配列の実装が
エレガントだからコードを見ててきれいに感じる。
0024login:Penguin2008/07/20(日) 23:32:42ID:j9YcHbCn
>>22 マジレス dd ちょっとやってみる(ヲイ
0025login:Penguin2008/07/21(月) 04:31:14ID:RBm9osMs
perl の -n は各行に対しての処理、-e はスクリプトをファイルでなくその場でワンライナー書く為のものだが
-a オプションはやっぱり awk の名に由来するのかねぇ
0026login:Penguin2008/07/21(月) 10:22:28ID:m3jpUYR9
>>25
autosplit modeってusageに書いてあるじゃん。
0027login:Penguin2008/07/22(火) 11:02:10ID:oOCbPgMu
>26
いや名目上はそうだけどさ。
スクリプトでauto〜なんて言い出したらキリが無いワケじゃん。
ぶっちゃけ -n だって自動ループと言っちゃえばそうだし。

そこで -s や -p みたいな名前じゃなくて
わざわざ -a にしたのは、やっぱ awk の名を意識したからなのかな、と
思ったんだよ。
0028login:Penguin2008/08/17(日) 18:47:40ID:AZ0h4M4q
ruby -ne 'puts split[2]'のほうが楽、と思ったけど
空行とかでの扱い考えると
ruby -ne 'puts split[2] || ""'
になるのか。やっぱawkが楽だな。
0029login:Penguin2008/12/03(水) 10:54:22ID:QXJz0hBL
sedのスレとかあったので、思わず「なんでawkを使わない?」って突っ込んでしまったけど、
実はおれも長らくsedからawkへ行けなかった。田中さん(緑のSerrow)が月刊asciiに書いた
記事を読んで使えるようになったのだった。

いまではperlも使うが、やはりawkが楽だなぁ。16進→10進変換の関数作ったり、
バイナリデータ読むためのコードをCで作ったりして無理やり使ってたころが
懐かしい。
0030login:Penguin2008/12/03(水) 23:47:03ID:Thw8Gp7O
2年くらい前からLinuxを本格的に使い始めたけど
awk(gawk)とsedには特に力を入れて勉強してる
gawkは機能が洗練されて美しいし直感的で使いやすい
リファレンスもとてもしっかりしてる
0031login:Penguin2008/12/09(火) 16:01:43ID:NHdcSNGH
おれが一番よく使うのは連想配列。

gawk '{w[$1]++;}END{for(i in w)print i,w[i];}' xxxx.txt | sort

みたいなことを何百回やったことか。
0032login:Penguin2009/04/21(火) 01:25:03ID:8RfnrYFS
わらうw
ttp://awk.info/?doc/dsl/awkplusplus.html

object_variable = class_name.new[(optional parameters)]
object_variable.method_name(parameters)
object_variable.delete
0033login:Penguin2009/04/21(火) 17:02:32ID:CHFddJcj
みなさん教えて下さい。

一行毎に読み込み@<と@>で囲まれた部分を
ランダムなアルファベット10文字に置換し、
元々@<@>に囲まれた部分の文字列と置換したランダムな文字列の対応を
別ファイルに書き出し

っていうのをやりたいです。
awkとsedでできるの?

pythonで書くべき?
0034login:Penguin2009/04/21(火) 18:09:12ID: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
}
0035login:Penguin2009/05/08(金) 21:56:17ID:uniCaTc9
まじぽかのUMAちゃんは最高にかわいいNE!
0036login:Penguin2009/07/08(水) 17:12:37ID:nwzD2hQJ
printfと$ / $がうまく両立できない・・・
文型向け授業でわざわざlinux使わせるなよ・・・
0037login:Penguin2009/07/14(火) 15:14:45ID:OYRFUc74
やっぱAWKいいよねー
「プログラミング言語AWK」は買い逃してたんで再販速攻で買ったよ。
Excelなんてやってられねーっつーの
0038login:Penguin2009/07/14(火) 15:45:04ID:ZhPQ90qn
>>37
Excelのvlookupみたいなリレーショナルな事がやりたい場合ってどーしてる?
0039login:Penguin2009/07/16(木) 23:17:47ID:up+KJ4E4
連想配列でいいんちゃうん?
0040login:Penguin2009/07/18(土) 04:58:19ID:p/gu39Bx
いやさ、複数のシートから引っ張ってくるような感じで、複数のテキストファイルを対象にしたい時。
0041login:Penguin2009/07/18(土) 15:26:29ID:VCKoFo8D
そんなん普通に複数ファイル処理すればいいやん。
0042login:Penguin2009/07/18(土) 16:20:59ID:p/gu39Bx
>>41
> そんなん普通に複数ファイル処理すればいいやん。

「普通に」の所kwsk
0043login:Penguin2009/07/18(土) 21:51:54ID:VCKoFo8D
getlineすりゃえーやろ
0044login:Penguin2009/07/19(日) 04:55:45ID:TalGZSOR
awk初心者です。質問させてください。
awkでアクセスカウンタを作ろうと思い、
以下のようなスクリプトを書いたのですが、
最後のhtmlへの出力(表示)の方法がわかりません。
どうしたらいいのでしょうか?
■ このスレッドは過去ログ倉庫に格納されています