5ちゃんねる ★スマホ版★ ■掲示板に戻る■ 全部 1- 最新50  

■ このスレッドは過去ログ倉庫に格納されています

awk ファンクラブ

1 :login:Penguin:2008/07/07(月) 20:45:18 ID:wYmB5VwU
おーくについて語りましょう

2 :login:Penguin:2008/07/07(月) 20:52:18 ID:7N4CeYxI
awkは言わねえ、たった一行・・・

3 :login:Penguin:2008/07/07(月) 20:55:08 ID:64cKGfca
オークは便利だオーク

4 :login:Penguin:2008/07/07(月) 21:21:04 ID:Bjq85S2V
sedファンクラブからきました。

5 :login:Penguin:2008/07/07(月) 21:35:44 ID:rSMtL5cT
ls -ltr | awk '{print $8}'

6 :login:Penguin:2008/07/07(月) 21:50:35 ID:XFLIMsgD
aho
wainberg
kernihan

7 :login:Penguin:2008/07/07(月) 22:39:16 ID:/5MnC3tB
awkでなんでもやるのって年がバレそうだなあ。ちょっと下の世代だとperlだろうし。

8 :login:Penguin:2008/07/08(火) 00:19:21 ID:9/fi698j
ttp://text.world.coocan.jp/TSNET/tsc/tsc_1.1.003.pdf

9 :login:Penguin:2008/07/08(火) 01:19:20 ID:yAMbUEpf
しばらくしたら,perlでなんでもやるのって年がバレそうだなあ。ちょっと下の世代だとpythonだろうし。ってなるんだろうな

10 :login:Penguin:2008/07/08(火) 10:32:21 ID:YEHCkTi1
下の世代はpythonよりrubyじゃないか?

自分の場合、全部シェルスクリプトだけどw

11 :login:Penguin:2008/07/08(火) 12:50:38 ID:6brAoz3h
perl->pythonときてawkの便利さに気付いた。

12 :login:Penguin:2008/07/08(火) 16:47:52 ID:TJw2Mlna
awk, perlユーザだが次はpythonとやらをいじってみるかね

13 :login:Penguin:2008/07/09(水) 19:51:11 ID:r1P6Mjit
awkを256倍はみなさん持ってます?ここがすべての始まりだったなあ

14 :login:Penguin:2008/07/09(水) 19:52:45 ID:+TY8Gpg6
オライリーのsed&awkがはじまりだったなあ・・・
んでもってx68kで遊んでいたw

15 :login:Penguin:2008/07/09(水) 19:55:00 ID:0dhBqlXX
俺はrubyとpython両方使ってる。
rubyはワンライナー〜十数行のスクリプト。
pythonは数十行〜数百行のスクリプト。

16 :login:Penguin:2008/07/09(水) 20:03:27 ID:Glf+LFW9
そんな昔にawkとかと出会えた人が羨ましい

17 :login:Penguin:2008/07/09(水) 20:09:52 ID:r1P6Mjit
awk gawk jgawk やっぱり魅力はデータなめさせた時のスピード感

18 :login:Penguin:2008/07/09(水) 21:59:50 ID:2WqtvhnN
適当なデータをSQLにして流すときとかに使ってる。
BEGIN/ENDのおかげでトランザクション使うのも簡単。

19 :login:Penguin: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:2008/07/20(日) 12:31:10 ID:/rTvaqQG
オークについて、おおくは語らねぇ

22 :login:Penguin:2008/07/20(日) 13:45:48 ID:ysRQGfiQ
>>20
perl -ane 'print $F[2], "\n"'でいいんじゃね?

23 :login:Penguin:2008/07/20(日) 22:40:15 ID:3uxKU7IE
>>22
なんかこう、Perlってスクリプトにエレガントさを感じないんだよな。つぎはぎが多い
というか。

awkの場合、cに近いスタイルでありながらパターンマッチングとか連想配列の実装が
エレガントだからコードを見ててきれいに感じる。

24 :login:Penguin:2008/07/20(日) 23:32:42 ID:j9YcHbCn
>>22 マジレス dd ちょっとやってみる(ヲイ

25 :login:Penguin:2008/07/21(月) 04:31:14 ID:RBm9osMs
perl の -n は各行に対しての処理、-e はスクリプトをファイルでなくその場でワンライナー書く為のものだが
-a オプションはやっぱり awk の名に由来するのかねぇ

26 :login:Penguin:2008/07/21(月) 10:22:28 ID:m3jpUYR9
>>25
autosplit modeってusageに書いてあるじゃん。

27 :login:Penguin:2008/07/22(火) 11:02:10 ID:oOCbPgMu
>26
いや名目上はそうだけどさ。
スクリプトでauto〜なんて言い出したらキリが無いワケじゃん。
ぶっちゃけ -n だって自動ループと言っちゃえばそうだし。

そこで -s や -p みたいな名前じゃなくて
わざわざ -a にしたのは、やっぱ awk の名を意識したからなのかな、と
思ったんだよ。

28 :login:Penguin:2008/08/17(日) 18:47:40 ID:AZ0h4M4q
ruby -ne 'puts split[2]'のほうが楽、と思ったけど
空行とかでの扱い考えると
ruby -ne 'puts split[2] || ""'
になるのか。やっぱawkが楽だな。

29 :login:Penguin:2008/12/03(水) 10:54:22 ID:QXJz0hBL
sedのスレとかあったので、思わず「なんでawkを使わない?」って突っ込んでしまったけど、
実はおれも長らくsedからawkへ行けなかった。田中さん(緑のSerrow)が月刊asciiに書いた
記事を読んで使えるようになったのだった。

いまではperlも使うが、やはりawkが楽だなぁ。16進→10進変換の関数作ったり、
バイナリデータ読むためのコードをCで作ったりして無理やり使ってたころが
懐かしい。


30 :login:Penguin:2008/12/03(水) 23:47:03 ID:Thw8Gp7O
2年くらい前からLinuxを本格的に使い始めたけど
awk(gawk)とsedには特に力を入れて勉強してる
gawkは機能が洗練されて美しいし直感的で使いやすい
リファレンスもとてもしっかりしてる

31 :login:Penguin: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: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:2009/04/21(火) 17:02:32 ID:CHFddJcj
みなさん教えて下さい。

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

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

pythonで書くべき?

34 :login:Penguin: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: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:2009/07/14(火) 15:45:04 ID:ZhPQ90qn
>>37
Excelのvlookupみたいなリレーショナルな事がやりたい場合ってどーしてる?


39 :login:Penguin:2009/07/16(木) 23:17:47 ID:up+KJ4E4
連想配列でいいんちゃうん?


40 :login:Penguin:2009/07/18(土) 04:58:19 ID:p/gu39Bx
いやさ、複数のシートから引っ張ってくるような感じで、複数のテキストファイルを対象にしたい時。

41 :login:Penguin:2009/07/18(土) 15:26:29 ID:VCKoFo8D
そんなん普通に複数ファイル処理すればいいやん。


42 :login:Penguin:2009/07/18(土) 16:20:59 ID:p/gu39Bx
>>41
> そんなん普通に複数ファイル処理すればいいやん。

「普通に」の所kwsk


43 :login:Penguin:2009/07/18(土) 21:51:54 ID:VCKoFo8D
getlineすりゃえーやろ


44 :login:Penguin: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: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:2009/07/21(火) 14:50:51 ID:PUGBjRE4
getline は毎回リファレンス見に行ってるなぁ
頭が劣化しとるわー

50 :login:Penguin: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:2009/08/15(土) 20:33:21 ID:7GY0b2Yy
Mac OS X Leopard 10.5.8でjgawkを使いたいのです。
ターミナルでawk '{print $0}' filenameですと日本語が悲しいです。
お使いのみなさん、使用法等教えて下さい。

52 :login:Penguin:2009/08/19(水) 18:02:30 ID:GJ3CGMhT
板違い。

53 :login:Penguin:2009/08/22(土) 09:19:23 ID:rmix/tng
Mac OS XをUnixとして使ってる人の為のスレ その15
http://pc11.2ch.net/test/read.cgi/mac/1247059597/

こっちのが詳しいかもね

54 :正月前:2009/12/29(火) 22:19:45 ID:UAwxD9+5
awk初心者です。
awkにはperlのjoinみたいの関数ありますか?
perl:
print join(":",$_);


55 :login:Penguin:2009/12/30(水) 01:06:12 ID:Q1gMau4C
データ集計に便利

56 :login:Penguin: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: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:2010/01/05(火) 12:34:43 ID:APedkSZb
echo -n $hoge | awk 'a[$0]++<1{printf(NR>1?RS:_)$0}' RS=:


60 :login:Penguin:2010/01/05(火) 12:50:31 ID:APedkSZb
a[$0]++<1 じゃなくて
!a[$0]++ とした方が1バイト短くなるな

って、そういう趣旨じゃないか


61 :login:Penguin:2010/01/08(金) 21:03:31 ID:pPQjxZAI
プログラミングAWK 3度目の復刊
http://www.fukkan.com/fk/CartSearchDetail?i_no=68313239&tr=t

62 :正月前:2010/01/11(月) 22:20:00 ID:jx5sxsA2
>>58,59,60
ご回答、誠に有難うございました!
まだawkの部分理解してないけど、期待通りの動作が確認できました!


63 :login:Penguin:2010/03/16(火) 14:08:38 ID:hRXCRI1I
Linuxじゃないんですが、Gawk on Windowsだと、
 gawk '{print $1;}' data.txt
ていうのは、クォーテーションはダブルにしないといけないんですね。。。

64 :login:Penguin: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:2010/05/14(金) 21:49:15 ID:KfNsslph
END {
  print "まだ始まってもねーよっ!"
}

BEGIN {
  printf "・・・ごめ・・・\n"
}



67 :login:Penguin:2010/07/22(木) 10:04:21 ID:PFu3TuWN
{
if ($0 == "aka") print "red"
else print "blue"
}
の最も変態的な記法を教えて下さい。

68 :login:Penguin:2010/07/22(木) 10:29:55 ID:YKIn4IAK
$0=/aka/?"red":"blue"


69 :login:Penguin:2010/07/28(水) 10:04:53 ID:ZsEEtYoL
END {
system("echo " + $0 + " | perl -ne 'if(/"aka"/){print \"red\";}else{print \"blue\";}'")
}


14 KB
■ このスレッドは過去ログ倉庫に格納されています

★スマホ版★ 掲示板に戻る 全部 前100 次100 最新50

read.cgi ver 05.04.00 2017/10/04 Walang Kapalit ★
FOX ★ DSO(Dynamic Shared Object)