awk ファンクラブ (333レス)
awk ファンクラブ http://mao.5ch.net/test/read.cgi/linux/1215431118/
上
下
前
次
1-
新
通常表示
512バイト分割
レス栞
167: login:Penguin [sage] 2011/07/16(土) 08:37:16.54 ID:n6+rd2ar 長過ぎるone-linerを見易く改行するone-linerを書きなさい http://mao.5ch.net/test/read.cgi/linux/1215431118/167
168: login:Penguin [sage] 2011/07/18(月) 15:25:02.07 ID:7hj9vKr7 しまったー!書き込む前にちょろっと書き換えたところがバグってました。mawkで動きません。 >>164の下のスクリプトは次に書き換えてください。 awk 'BEGIN{f=ARGV[1];while((getline<f)>0)a[n++]=$0;close(f);ARGC=1};{for(i=0;i<n;++i)if(tolower(a[i])~tolower($0))print a[i]}' awkのシーケンスポイントってC言語と同じなのかな…痛いミス。 おまけ。使ってるやつ。エスケープシーケンスを使って見つかった文字列に色を付けた。 awk 'BEGIN{f=ARGV[1];while((getline<f)>0)a[n++]=$0;close(f);ARGC=1}; {for(i=j=0;i<n;++i)if(k=match(tolower(a[i]),tolower($0)))print C(j=!j)I(I(a[i],C(39),k+RLENGTH),C(31),k);print C()}; function C(n){return"\033["n"m"};function I(x,y,z){return substr(x,1,z-1)y substr(x,z)}' パターンごとに改行を入れた。少し見やすいか? >>164の上のスクリプトに色を付ける機能を追加。ずっと分かりやすいと思う。 awk 'BEGIN{f=ARGV[1];while((getline<f)>0)a[n++]=$0;close(f);ARGC=1}; {for(i=j=0;i<n;++i){l=a[i];if(sub($0,C(31)"&"C(39),l))print C(j=!j)l}print C()}; function C(n){return"\033["n"m"}' subをgsubにするとマッチする全ての文字列に色を付けられるよ。 gawkならgensub使ってもう少し短く書けるかもしれない。IGNORECASE=1で簡単に大文字小文字無視できるし。 http://mao.5ch.net/test/read.cgi/linux/1215431118/168
169: login:Penguin [sage] 2011/08/15(月) 19:41:00.75 ID:yTTHvZyj classは使えるようになりましたか? > gawk4 http://mao.5ch.net/test/read.cgi/linux/1215431118/169
170: login:Penguin [sage] 2011/08/16(火) 15:17:21.28 ID:Tuhp+s5y つ ttp://awk.info/?doc/dsl/awkplusplus.html http://mao.5ch.net/test/read.cgi/linux/1215431118/170
171: login:Penguin [sage] 2011/08/16(火) 15:27:51.45 ID:2FR0TK0E ちゃんとご自分で読んだものを「つ」されてますか? http://mao.5ch.net/test/read.cgi/linux/1215431118/171
172: login:Penguin [sage] 2011/08/21(日) 15:15:49.17 ID:EL3rN3cw ふるいけや "かわず とびこむ" みずのおと といったレコードを、 field[1]=ふるいけや field[2]=かわず とびこむ field[3]=みずのおと number_of_field = 3 とフィールド分割するすっりした方法を教えて下さい。 http://mao.5ch.net/test/read.cgi/linux/1215431118/172
173: login:Penguin [sage] 2011/08/21(日) 16:45:12.36 ID:iSpKRH15 " で split すればいい http://mao.5ch.net/test/read.cgi/linux/1215431118/173
174: login:Penguin [sage] 2011/08/21(日) 18:45:31.99 ID:EL3rN3cw やはり2chでは馬鹿レスしかつかんか。 http://mao.5ch.net/test/read.cgi/linux/1215431118/174
175: login:Penguin [sage] 2011/08/21(日) 18:56:18.08 ID:Fst2eXVD >>172 それ、CSVとかでもよく語られることだけど、意外と面倒なのよ。 例えば「"」自体を文字列に入れたい場合はどうするのか、とか色々決めなきゃならんし。 http://mao.5ch.net/test/read.cgi/linux/1215431118/175
176: 170 [sage] 2011/08/21(日) 19:12:48.13 ID:yoctsNv6 あれ?awkでclass使いたいって事なんでしょ? ttp://ja.wikibooks.org/wiki/AWK%2B%2B%E3%81%AB%E3%82%88%E3%82%8B%E3%82%AA%E3%83%96%E3%82%B8%E3%82%A7%E3%82%AF%E3%83%88%E6%8C%87%E5%90%91%E5%85%A5%E9%96%80 http://mao.5ch.net/test/read.cgi/linux/1215431118/176
177: login:Penguin [sage] 2011/08/21(日) 19:24:48.22 ID:yoctsNv6 >172 素直に区切り文字を変えるしか... ふるいけや,かわず とびこむ,みずのおと FS="," http://mao.5ch.net/test/read.cgi/linux/1215431118/177
178: 172 [sage] 2011/08/21(日) 22:01:39.45 ID:Mb9j323G 自己レスです。 BEGIN { FPAT = "([^" FS "]+)|(\"[^\"]+\")" } みたいな事をしました。 http://mao.5ch.net/test/read.cgi/linux/1215431118/178
179: login:Penguin [sage] 2011/08/22(月) 10:27:15.81 ID:bf5ta6rs awk にわけわかんな機能を増やすよりも、 RFC4180 互換なフィールド分割オプションを実装すればいいのにといつも思う。 http://mao.5ch.net/test/read.cgi/linux/1215431118/179
180: login:Penguin [sage] 2011/08/22(月) 10:33:38.59 ID:uwcmdhh8 馬鹿の巣窟にわざわざ書き込むな馬鹿 http://mao.5ch.net/test/read.cgi/linux/1215431118/180
181: login:Penguin [sage] 2011/08/22(月) 11:11:08.80 ID:4smqF+KA 見事に馬鹿の巣窟と化したねえ http://mao.5ch.net/test/read.cgi/linux/1215431118/181
182: login:Penguin [sage] 2011/11/28(月) 19:46:48.89 ID:NIKBR+N1 perl -e 'print $1 if /href="(¥d¥d¥d¥d-¥d¥d¥-¥d¥d)"/' と同じことをawkでやろうとしているのですがわかりません。 awk -e '/href="(¥d¥d¥d¥d-¥d¥d¥-¥d¥d)"/ { print ??? }' グルーピングしたあとにそれを取り出す方法を探したのですが、わかりませんでした。 awkまたはsedでのやり方を教えて下さい。 http://mao.5ch.net/test/read.cgi/linux/1215431118/182
183: login:Penguin [sage] 2011/11/28(月) 20:46:46.52 ID:skmC2JM9 >>181 馬鹿じゃないあなたに是非>>182の回答をしてもらおうか。 http://mao.5ch.net/test/read.cgi/linux/1215431118/183
184: login:Penguin [sage] 2011/11/28(月) 21:15:52.48 ID:Oo5SGhpX >>182 perl がわからないから求めるものがよくわからないけれど、こんな感じ? awk '/href=\"[0-9][0-9][0-9][0-9]-[0-9][0-9]-[0-9][0-9]\"/ {print $1}' input.html awk '/href=\"\([0-9][0-9][0-9][0-9]-[0-9][0-9]-[0-9][0-9]\)\"/ {print $1}' input.html BEGIN とか使ったほうがいいのかもしれないけれど awk '/href=\"[0-9][0-9][0-9][0-9]-[0-9][0-9]-[0-9][0-9]\"/ {print $1} BEGIN { 何か書く }' input.html http://mao.5ch.net/test/read.cgi/linux/1215431118/184
185: login:Penguin [sage] 2011/11/28(月) 23:48:15.14 ID:mynsjW2o >>182 どのawk使っているか分からないし、入力の仕様も分からないけど、どこでも動くのはこんな感じ awk -F\" '/href=/ { for (i=1; i<=NF; i++) if ($i ~ /href=$/ && $(i+1) ~ /[0-9][0-9][0-9][0-9]-[0-9][0-9]-[0-9][0-9]/) print $++i }' gawkでも正規表現パターンのグループを保存している組み込み変数はなかった気がする http://mao.5ch.net/test/read.cgi/linux/1215431118/185
186: login:Penguin [sage] 2011/11/29(火) 00:49:47.68 ID:6tCpTQmb gawk4.0なら awk '{if (match($0,"href=([0-9]{4}-[0-9][0-9]-[0-9][0-9])",a)) print a[1]}' じゃ駄目? http://mao.5ch.net/test/read.cgi/linux/1215431118/186
187: login:Penguin [sage] 2011/11/29(火) 01:04:03.02 ID:6tCpTQmb ごめん、 awk '{if (match($0,"href=\"([0-9]{4}-[0-9][0-9]-[0-9][0-9])\"",a)) print a[1]}' http://mao.5ch.net/test/read.cgi/linux/1215431118/187
188: login:Penguin [sage] 2011/11/29(火) 16:01:19.31 ID:vLvhB/JG >>184-186 うーん、あまりわかりやすい方法ではないですね。 メンテナンスしにくいコードになってしまうので、perlが使えるよう上司に交渉したほうがよさそうです。 回答いただいた方、ありがとうございました。 http://mao.5ch.net/test/read.cgi/linux/1215431118/188
189: login:Penguin [sage] 2011/11/29(火) 16:28:12.31 ID:MmS6Zrem >>185はともかく>>186-187の方がPerlみたいにグローバル変数にマッチ結果を入れるより分かりやすいと思うのって俺だけ? http://mao.5ch.net/test/read.cgi/linux/1215431118/189
190: login:Penguin [sage] 2011/11/29(火) 17:00:24.97 ID:vLvhB/JG >>189 186は、単にgawk独自の拡張機能を知ってないとわかりにくいというだけであり、 マッチした結果を明示的に変数に代入するのはいいことだと思います。 なお個人的には match(string, rexp, matched) はmatchedがいわゆるout変数になるため分かりにくいです。 matched = match(string, rexp) のほうがよかったです。 http://mao.5ch.net/test/read.cgi/linux/1215431118/190
191: login:Penguin [sage] 2011/11/29(火) 17:27:04.96 ID:8ESv/UnH >>190 何言っているのかちょっと分からん。言語仕様上awkは配列を返せないだろ http://mao.5ch.net/test/read.cgi/linux/1215431118/191
192: login:Penguin [sage] 2011/11/30(水) 00:16:56.92 ID:CRejWMLU gawk独自の実装はどうも…という話がよく出てくるけど、 gawk/mawk/true awk相互で運用する必要ってよくあるものなの? またはbusyboxのawkで使いたいとか? http://mao.5ch.net/test/read.cgi/linux/1215431118/192
193: login:Penguin [sage] 2011/11/30(水) 02:39:57.37 ID:TGbwU425 gawkは最早awkと呼ぶには拡張され過ぎている感じがある よくあるかは知らないけど、少なくとも手元の環境には3種類のawkがあって、gawkの拡張が使えない mawkはnextfileにも対応してないし、awkは実装の差がかなり大きいと思うよ http://mao.5ch.net/test/read.cgi/linux/1215431118/193
194: login:Penguin [sage] 2011/12/01(木) 00:38:55.88 ID:cIbdY7f8 gawkが拡張されてるのは承知だが、gawk依存だとメンテが大変だから perlというロジックが分かりにくい。 http://mao.5ch.net/test/read.cgi/linux/1215431118/194
195: login:Penguin [sage] 2011/12/03(土) 01:06:16.24 ID:0aRpOAWF gawkで (ああ(いい((うう)(ええ)))) この行の「ああ」「いい」「うう」「ええ」を変数に入れたい時、 何か定番な書き方はありますか? http://mao.5ch.net/test/read.cgi/linux/1215431118/195
196: login:Penguin [sage] 2011/12/03(土) 01:56:31.82 ID:ivCb+cNz 何を期待しているのか分からん 括弧を区切りにして分けたいだけならFS="[()]+"で 配列に入れたいならsplitでどう? http://mao.5ch.net/test/read.cgi/linux/1215431118/196
メモ帳
(0/65535文字)
上
下
前
次
1-
新
書
関
写
板
覧
索
設
栞
歴
あと 137 レスあります
スレ情報
赤レス抽出
画像レス抽出
歴の未読スレ
AAサムネイル
Google検索
Wikipedia
ぬこの手
ぬこTOP
0.024s