awk ファンクラブ

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

20 :login:Penguin:2008/07/20(日) 12:21:50 ID:j9YcHbCn.net

awk がなくなると困る・・・・・
Perlで$3 を表示しる!とかどーすんよ

awk ‘{print $3}’

23 :login:Penguin:2008/07/20(日) 22:40:15 ID:3uxKU7IE.net

>>22
なんかこう、Perlってスクリプトにエレガントさを感じないんだよな。つぎはぎが多い
というか。

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

110 :login:Penguin:2011/06/05(日) 10:44:14.22 ID:3GXVErWF.net

awk /./

の7文字だけでOK
RSは初期値が入ってるんだから

225 :login:Penguin:2017/12/29(金) 14:37:58.78 ID:S/CsVkMC.net

誰でも簡単にパソコン1台で稼げる方法など
参考までに、
⇒ 『宮本のゴウリエセレレ』 というブログで見ることができるらしいです。

グーグル検索⇒『宮本のゴウリエセレレ』

DCQTVO9E2N

75 :login:Penguin:2011/02/11(金) 21:58:36 ID:W6G44msP.net

awkって今時オブジェクト指向もサポートしてねぇのか。
だせぇ・・・

とか思ってたらこんなのもあるんだな。
http://awk.info/?doc/dsl/awkplusplus.html

115 :login:Penguin:2011/06/08(水) 00:28:22.25 ID:AGBbsX8a.net

速くて短いし、そっちのがコードと意味が一致するかと

3 :login:Penguin:2008/07/07(月) 20:55:08 ID:64cKGfca.net

オークは便利だオーク

122 :login:Penguin:2011/06/13(月) 22:57:31.80 ID:0YRj9/YK.net

いや、しかし最近目から鱗落ちまくりです。沢山の書き込みに感謝感謝。

33 :login:Penguin:2009/04/21(火) 17:02:32 ID:CHFddJcj.net

みなさん教えて下さい。

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

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

pythonで書くべき?

76 :login:Penguin:2011/05/24(火) 19:21:38.77 ID:iwctpm7O.net

awkの処理についてアドバイスを下さい。
スペースで区切られたテキストファイルがあります。

例(フィールド数も文字数も全部異なります)

abc efg hij http://www.example.com/index.html xyz
123 http://www.example.org/ she good love look good
4edi http://www.example.net/test/test.html

こんな感じのテキストファイルからURLだけを抽出したい
場合、どう言った処理を行うと良いでしょうか?

printなどは使えそうにないし頭を抱えています。
是非お助け下さい。

157 :login:Penguin:2011/07/09(土) 19:07:48.49 ID:OcQSMVqG.net

>>153
ホント?Delphiなんて懐かしいなぁ。GUIでなく、Webでの利用なら、もはやOSあまり関係ないような気も。よく分からん。

>>155
聞いたことはあるけど、見たことはない程度には珍しいかと。gawkはネットに対応してるから頑張ればサーバにもなれるかな?

163 :login:Penguin:2011/07/14(木) 01:48:17.88 ID:I04Pjvnw.net

>>134
これを使って正規表現によって grep とどれだけ実行速度に差が出るのか計ってみた。
ttp://pastebin.com/bpXZ5pg8

数字だけではよく分からないので、ユーザ時間のグラフを描いた。
ttp://i53.tinypic.com/303a4iv.jpg
赤がawk、青がgrep
こっちじゃないと見れないかも → ttp://tinypic.com/r/303a4iv/7

awk もばらつきがあるけど、grep ほどではない。
どちらも、マッチする可能性が高い正規表現は遅くなる傾向があるのかなぁ?

106 :login:Penguin:2011/06/05(日) 08:10:41.12 ID:SucWQMoo.net

RSが空だとRS=¥n+として解釈されるんじゃまいか

32 :login:Penguin:2009/04/21(火) 01:25:03 ID:8RfnrYFS.net

わらうw
ttp://awk.info/?doc/dsl/awkplusplus.html

object_variable = class_name.new[(optional parameters)]
object_variable.method_name(parameters)
object_variable.delete

78 :login:Penguin:2011/05/24(火) 19:52:09.13 ID:WxByEtFQ.net

自分は
match($0, /http:¥/¥/[^ ]+/, f)
を使う気がする。

143 :login:Penguin:2011/07/08(金) 17:42:07.69 ID:baIcylwh.net

>>142
BEGIN{for(;i<256;++i)c[t=sprintf(“%c”,i)]= i==32?”+”:t‾/[0-9A-Za-z]/?t:”%”sprintf(“%x”,i)}
{for(s=i=””;i++<length;s=s c[substr($0,i,1)]); print s}

マルチバイト対応してて length() とか substr() とかが
バイト数ではなく文字数を数えて動作するような小賢しい awk だと逆に動かない。

11 :login:Penguin:2008/07/08(火) 12:50:38 ID:6brAoz3h.net

perl->pythonときてawkの便利さに気付いた。

150 :login:Penguin:2011/07/09(土) 15:37:05.06 ID:Q3LPccup.net

awkオンリーってのがムズイので、Cygwin上でsh他外部コマンドと組み合わせて使う事が多い

29 :login:Penguin:2008/12/03(水) 10:54:22 ID:QXJz0hBL.net

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

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

178 :172:2011/08/21(日) 22:01:39.45 ID:Mb9j323G.net

自己レスです。
BEGIN { FPAT = “([^” FS “]+)|(¥”[^¥”]+¥”)” }
みたいな事をしました。

71 :login:Penguin:2010/11/04(木) 23:15:07 ID:mFaq3KZr.net

>>70はマルチ

41 :login:Penguin:2009/07/18(土) 15:26:29 ID:VCKoFo8D.net

そんなん普通に複数ファイル処理すればいいやん。

49 :hogehoge:2009/07/21(火) 14:50:51 ID:PUGBjRE4.net

getline は毎回リファレンス見に行ってるなぁ
頭が劣化しとるわー

135 :login:Penguin:2011/07/01(金) 23:56:01.08 ID:NsJJwAAV.net

時間計測の結果を追記。

time grep -C 500 ‘public class¥|jar cf¥|javac¥|¥.java’ <strings_a.txt >/dev/null
real 0m2.112s
user 0m1.528s
sys 0m0.311s

time awk ‘BEGIN{ L=500;(略)}; /public class|jar cf|javac|¥.java/{(略)}; n++<=L’ <strings_a.txt >/dev/null
real 1m20.089s
user 1m15.426s
sys 0m0.389s

一回計測。約50倍くらい遅いか。ネイティブとスクリプトだから、まあこうなる、と言ったところだと思う。
短い処理なら有利な場合もあるんだろうけど。

14 :login:Penguin:2008/07/09(水) 19:52:45 ID:+TY8Gpg6.net

オライリーのsed&awkがはじまりだったなあ・・・
んでもってx68kで遊んでいたw

200 :login:Penguin:2013/03/20(水) 12:52:31.89 ID:YjhinaPB.net

しつもん
http://gauc.no-ip.org/awk-users-jp/blis.cgi/DoukakuAWK_050 のスクリプトの35行目

for (++day;;) {

の意味と動作がよくわからんです
which で等価なループを書くとどんな感じになるの? カコイイ先輩おしえてplz

165 :login:Penguin:2011/07/15(金) 08:26:42.31 ID:ZNSgasJH.net

見にくいので、セミコロンで改行して欲しい。

86 :login:Penguin:2011/06/02(木) 03:19:02.91 ID:LRv8LU2q.net

入力からランダムで1行表示する
awk ‘{ l[i++]=$0 }; END{ srand(); print l[int(i*rand())] }’

シェルスクリプトの方が短いか?

139 :login:Penguin:2011/07/07(木) 02:54:29.78 ID:bHkfWT8R.net

md5sumコマンドの出力から重複するMD5チェックサムを持つファイルを列挙する
awk ‘{ i=++a[$1,0]; a[$1,i]=$0 }; END{ for (i in a) if (!k[split(i,k,SUBSEP)] && a[i]>1) for (j=1; j<=a[i]; j++) print a[k[1],j] }’

まだ短く書けそうかな?
あるディレクトリ以下を調べるなら、こんな感じでMD5チェックサムを計算する。
find sda6.photorec -type f -exec md5sum ‘{}’ +
この出力をパイプか何かで食わせればいい。

gawkの4.0が出たか。いろんな亜種を使う機会があるから、なかなか依存したプログラムは書けないね。
よく使うのはgawkとmawkだけど、皆何をよく使ってるのだろう?使用者が少ないから余計に気になる。

デバッガって使いやすい?いまだにprintで表示してやってるなぁ。

81 :login:Penguin:2011/05/24(火) 23:22:37.43 ID:Rb7jhN0u.net

うちは>>77の条件を index($i, “http:”) == 1 で書くだろうなぁ
でも、処理内容がそれだけなら sed -n ‘s/^.*¥(http:[^ ]*¥).*$/¥1/p’ だなぁ
避けられるなら正規表現は避けたほうが速いんじゃないかと思ってる

133 :login:Penguin:2011/07/01(金) 01:20:48.84 ID:NsJJwAAV.net

xgawkは使ってないなぁ。使ってる鳥には無いし。XHTMLが対象ならもっと短く書けるのだろうか。

>>130
おー!これはクール。
gawkは大文字小文字無視する処理書くの楽だね。流石だ。

>>131
前後の行を表示させたりが楽かも。まあ、滅多にお世話になることないけど…
rm -r *でデータ飛ばしたから、そのサルベージに役立つとは…orz

187 :login:Penguin:2011/11/29(火) 01:04:03.02 ID:6tCpTQmb.net

ごめん、
awk ‘{if (match($0,”href=¥”([0-9]{4}-[0-9][0-9]-[0-9][0-9])¥””,a)) print a[1]}’

101 :login:Penguin:2011/06/04(土) 12:42:54.20 ID:HzZByxDX.net

複数のtimeコマンドの出力から平均を求める
awk -Fm ‘{ a[$1]+=$2; a[0,$1]++ }; END{ for(i in a) if(i‾/^[rus]/) printf “%sm%.3fs¥n”,i,a[i]/a[0,i] }’

昨日の時間計測のために書いた。
いろいろ問題あり。これ以上短くかけなかった、残念だわ。

sedがすっごい遅いので全部メモリに読み込んで処理させてみた。
time cat src.txt |sed -n ‘1x;1!H;${x;s/¥n¥n¥+/¥n/gp}’ >/dev/null
real 0m24.515s
user 0m18.584s
sys 0m2.005s
# ちなみに、昨日のも含めて3回試した結果を平均した

…やっぱ遅い。GNU sedが悪いの?スレ的に満足な結果だけど。
便利で速くてシンプルなのに、あまり使われない紹介されない、消え行くawk、カワイソス

102 :login:Penguin:2011/06/04(土) 13:21:18.28 ID:El9DLlK0.net

フィールドを抜き出すワンライナーはやっぱawkでしょ
perl -pae’$_=$F[8].$/’
ruby -nae’puts$F[8]’
awk ‘print$9’

152 :login:Penguin:2011/07/09(土) 17:38:27.04 ID:OcQSMVqG.net

そうか、Windowsでの使用率は考えたことなかったわ。そっちで今何が流行ってるのかは知らないけど、
GUI扱うライブラリを持つLLが使われてそうだ。こればかりは厳しい。そもそも、ライブラリって概念がないのが避けられてるのかな。

162 :login:Penguin:2011/07/11(月) 00:10:26.11 ID:ShNAK0f0.net

個人的にはawkは今まで通りシェルのお供でいいと思う
perlとかでもそりゃ書けんことは無いが
シェルのお供として使うには微妙に違和感あるんだよな〜

210 :login:Penguin:2015/01/24(土) 12:11:48.77 ID:4AXaMrRk.net

紙質が悪くてボロボロになった

55 :login:Penguin:2009/12/30(水) 01:06:12 ID:Q1gMau4C.net

データ集計に便利

130 :login:Penguin:2011/06/16(木) 10:18:36.69 ID:x2P5GNsY.net

>>129
gawk ‘$0=gensub(“</?title>”, “”, “g”, RT)’ RS='<title>.*</title>’ IGNORECASE=1

158 :login:Penguin:2011/07/09(土) 19:58:21.74 ID:Ne909y4H.net

>>157
いやまあDelphiは新規としては瀕死で、過去遺産の保守で使われるのが主だけどね。

22 :login:Penguin:2008/07/20(日) 13:45:48 ID:ysRQGfiQ.net

>>20
perl -ane ‘print $F[2], “¥n”‘でいいんじゃね?

2 :login:Penguin:2008/07/07(月) 20:52:18 ID:7N4CeYxI.net

awkは言わねえ、たった一行・・・

26 :login:Penguin:2008/07/21(月) 10:22:28 ID:m3jpUYR9.net

>>25
autosplit modeってusageに書いてあるじゃん。

117 :login:Penguin:2011/06/08(水) 06:42:33.45 ID:3juXEiES.net

上だと¥n¥rになっちゃうけど
CRLFの¥r¥nとは違うから
Windowsでは認識しないのでは?

103 :login:Penguin:2011/06/05(日) 00:51:57.16 ID:kp3qNbsC.net

>>95の表記初めて見た
このスレの住民にはこれくらい当たり前なのか…

147 :login:Penguin:2011/07/09(土) 07:11:28.80 ID:OcQSMVqG.net

このスレ七夕に立ってたのか。3周年って言われると、まだ3年かと思ってしまう。
3年前といえばLLが盛り上がってた頃だから、もう少し前に立ってればここももっと盛り上がっていたかもね。
gawkは新しくなったけど、確実に他のLLに流れてるよなぁ…

148 :login:Penguin:2011/07/09(土) 07:34:21.50 ID:OcQSMVqG.net

>>145
どこぞのOSでは使えない文字をわざわざファイル名に使わないよねって思い、楽してます。
ただパスに含まれる可能性はあるので、そういった場合は file -F; のようにして
fileコマンドの使うセパレータを(使われていない)任意の文字に設定して下さい。

スタイルに関しては全くその通りで、自分でも冗長だと思いつつ残しています。以下言い訳…

スペースは読み辛くなると思う所にだけ残すようにしています。また、ここに貼ると、
表示がプロポーショナルフォントになって、幅が狭い文字の隣から一部分コピペする操作をよくミスるため、
そういった幅の狭い文字(}とか;)の後には残しています。
ifやwhileの後、print $1 や “a” b “c” に含まれるものも省略できますが、違和感が物凄いので残しています。

セミコロンは(POSIXの仕様で)必要なものだけを残しているつもりです。
過去の互換性のために省略可能なものは、残すようにしています。

48 :login:Penguin:2009/07/19(日) 15:13:23 ID:Ge8Nt7Pt.net

>>44
SSIの仕組みは理解できていますか。
ttp://httpd.apache.org/docs/2.0/ja/howto/ssi.html

175 :login:Penguin:2011/08/21(日) 18:56:18.08 ID:Fst2eXVD.net

>>172
それ、CSVとかでもよく語られることだけど、意外と面倒なのよ。
例えば「”」自体を文字列に入れたい場合はどうするのか、とか色々決めなきゃならんし。

138 :login:Penguin:2011/07/06(水) 07:36:41.51 ID:Q5KmFo/I.net

dgawk便利だね。

参考になったらSNSでシェアお願いします!

レスを投稿する(名前省略可)

この記事を読んだ方へのおすすめ

  • Vivaldiブラウザ Part32

    元スレ 1 :名無しさん@お腹いっぱい。 :2018/10/20(土) 07:42:01.42 ID:gv/yg3Lj0.net Vivaldi – パワフルでカスタマイズが自在で、セキュアで自由。WEBが楽…

  • 【ニコ風】実況ソフト Nicort Part5【実況板対応】

    元スレ 1 : ◆wRjqzRYkxg :2014/11/23(日) 13:07:36.96 ID:tQQ012Sc0.net No.1テレビ実況ソフト、「Nicort」(ニコルト)のスレです。(評価は作者主観) Nic…

  • 【VideoLAN】VLC media player 31

    元スレ 1 :名無しさん@お腹いっぱい。:2021/01/17(日) 06:12:04.49 ID:ssltOXMx0.net VideoLAN – VLC media player http://www.v…

  • LFS(Linux From Scratch) 統合スレ 3

    元スレ 1 :login:Penguin:2017/02/18(土) 09:40:03.66 ID:L/lBfv1+.net 現行での最新版は7.10です。 本家 http://www.linuxfromscratch.…

  • 犬女 2匹目

    元スレ 1 :login:Penguin:2009/06/01(月) 02:37:54 ID:KuL/oRjE.net どんなディストリ使ってる? どんなマシンで使ってる? Linuxを使うように成ったキッカケは? やっ…

  • Debian GNU/Linux スレッド Ver.90

    元スレ 1 :login:Penguin:2018/10/07(日) 13:57:44.76 ID:lLJ13ekV.net 公式 https://www.debian.org/index.ja.html 過去ログは各自…

  • ESET Smart Security その32

    元スレ 1 :名無しさん@お腹いっぱい。:2014/11/09(日) 19:09:06.35 ID:yim10uoY0.net NOD32のESETが開発した総合セキュリティソフト 「ESET Smart Securit…

  • LINUX協会会長だけど、なんか質問ある?

    元スレ 1 :会長:2001/01/29(月) 02:44.net 日本LINUX協会会長ですけど、なんか言うことありますか。 86 :login:Penguin:2001/06/25(月) 23:31.net     …

  • Google Chrome 111

    元スレ 1 :名無しさん@お腹いっぱい。 :2021/09/23(木) 01:35:09.17 ID:JiQKhF240.net 前スレ Google Chrome 110 https://egg.5ch.net/tes…

  • UbuntuをTwitterで広める会

    元スレ 1 :UXW:2016/02/08(月) 17:54:54.66 ID:D6KxcKwi.net PCで一番使われているOSがあまり進化していない。 そこでUbuntuを広めることによって両者とも、 より良いOS…

  • 【高速】Geany【エディタ】

    元スレ 1 :login:Penguin:2009/01/11(日) 18:01:25 ID:PHNGkd7G.net Geany http://www.geany.org/ Geany is a text editor…

  • 書き込みテストスレ

    元スレ 1 :login:Penguin:2014/02/28(金) 19:01:14.64 ID:xhJxooEq.net テスト 233 :login:Penguin:2014/05/22(木) 21:31:41.7…

最近のコメント

匿名 : 【いちゃ部屋】株式会社SHIFT【5ch出張所】
 新入社員はわかいそう、 在宅勤務でe-ラニングうけとけ、 ... (6/18)
匿名 : 【残業代】福井 株式会社アスタ【未払い】
 プライド高いところあるけど清輝あるなら大丈夫や (5/28)
匿名 : 【残業代】福井 株式会社アスタ【未払い】
 プライド高いところあるけど清輝あるなら大丈夫か (5/07)
ページTOPへ↑