タグ

awkに関するot2sy39のブックマーク (25)

  • プログラミング言語AWKのここがLOVE

    プログラミング言語AWKが好きなので、この言語のどこが好きかを語ります。主にAWKを知らない、知ってるけど使ったことが無いかた向けの記事ですが、使ったことがあるかたも「こういう思いで使ってる人がいるのか」と遠巻きに眺めてもらえればと考えます。また、後半で最近出たAWKの書籍についても紹介しているので、そちらも役立つかもしれません。 AWKとは AWKは1977年にAT&Tベル研究所で生まれたプログラミング言語です。AT&Tベル研究所といえばUNIXが生まれたところです。著者もUNIXに縁が深い、この世界のレジェンドばかりです。たとえばKernighan先生はプログラミング言語Cをはじめ、たくさんの書籍の著者として有名です。なんだか強そうな言語ではないかという気がしてきました。 AWKは汎用プログラミング言語ですが、「1行1レコードになっているテキストファイルを最小の手間で処理するワンライナ

    プログラミング言語AWKのここがLOVE
    ot2sy39
    ot2sy39 2024/08/25
    awk大好き。JSON大嫌い。JSONはUNIX文化とは相容れない存在だと思うのだが、なぜか普及してしまった。悲しい。 / perlも-aオプションあるよ。
  • 35年ぶりの第2版「プログラミング言語AWK 第2版」、オライリーから5月発売

    awkは、UNIX登場初期からgrepやsedなどと並んで代表的なコマンドラインツールとして使われてきました。その名称が、作者であるAho氏、Weinberger氏、Kernighan氏の三者の名前からとったものであるというエピソードも非常に有名です。 そしてこの三人の作者が執筆した書籍「The AWK Programming Language」(邦題:プログラミング言語AWK)は、awkのバイブルと言ってよい書籍でしょう。 日で1989年に第1版が発行されたこの「プログラミング言語AWK」が、35年ぶりに第2版に改訂され、今年(2024年)5月16日にオライリー・ジャパンから発売されることが分かりました(Amazon楽天ブックス)。 著者は第1版と変わらず、Alfred V. Aho氏、Brian W. Kernighan氏、Peter J. Weinberger氏です。 下記はAm

    35年ぶりの第2版「プログラミング言語AWK 第2版」、オライリーから5月発売
    ot2sy39
    ot2sy39 2024/04/01
    紙で買います。私がこのアイコンなのは、AWK大好きだから(マジで)。ウミガラスでないのは妥協。
  • awkが新しくなる!? 本家AwkがUnicode (UTF-8)とCSV対応に! - Qiita

    はじめに 2023年、長い時を経て awk がとうとう Unicode (UTF-8) と CSV に対応しました 🎉🎉🎉 awk で日語がうまく扱えない(場合がある)、Excel が出力する CSV ファイルが扱えない(場合がある)、といった問題が解決に向けて一歩に進みます。 去年、家 awk (One True Awk, nawk) に Unicode サポートが Brian Kernighan の手によって追加されたと話題になった(参照)ことを覚えているでしょうか? Brian Kernighan が誰だか知らない方がいるかもしれないので説明すると、オリジナルの awk の開発者の一人で awk の頭文字、Alfred Aho、Peter Weinberger、Brian Kernighan の一人です。通称「K&R」の「プログラミング言語C」や「プログラミング言語AWK」

    awkが新しくなる!? 本家AwkがUnicode (UTF-8)とCSV対応に! - Qiita
    ot2sy39
    ot2sy39 2023/09/17
    この件について、斉藤博文さんの解説を読みたい。
  • GNU AWK 5.0がリリース。8年ぶりのメジャーバージョンアップ。正規表現ライブラリがGLIBCからGNULIBへ移行、名前空間が実装

    GNU AWK 5.0がリリース。8年ぶりのメジャーバージョンアップ。正規表現ライブラリがGLIBCからGNULIBへ移行、名前空間が実装 UnixやLinuxにおいてsedやgrepなどと並んでよく知られているツールの1つがawk(オーク)です。このawkのGNUプロジェクトによる実装の最新版「GNU AWK 5.0」(gawk 5.0)のリリースが発表されました。 2011年にリリースされたGNU AWK 4.0から8年ぶり、直前のバージョンでとして2017年10月にリリースされた4.2.0からは約1年半ぶりとなります。 AWKはいわゆるスクリプティング言語の一種。変数や関数、制御文など基的な構文を備え、テキストファイルを効率的に処理できるのが特徴です。 GNU AWK 5.0の新機能としては、printfの%aおよび%Aの書式がPOSIX標準に準拠したこと、正規表現のルーチンが、長

    GNU AWK 5.0がリリース。8年ぶりのメジャーバージョンアップ。正規表現ライブラリがGLIBCからGNULIBへ移行、名前空間が実装
    ot2sy39
    ot2sy39 2019/04/17
    awkは制限環境でも使えることに大きな価値がありPOSIX環境で使える機能だけ使う方がいいという思いもあるのだが、gawkの独自拡張であるstrftimeとgensubは使ってしまう。ver.5でも、そういうどうしても使う機能あるかな。
  • シェル芸勉強会  AWK の基本 ­ パターンを使ったお手軽プログラミング 2015 年 12 月 26 日 斉藤 博文 (@hi_saito) Index 1. 自己紹介 2. 今回の内容 ­ 一行野郎 ­ 3. AWK の基本 ­ レコードとフィー��

    シェル芸勉強会  AWK の基 ­ パターンを使ったお手軽プログラミング 2015 年 12 月 26 日 斉藤 博文 (@hi_saito) Index 1. 自己紹介 2. 今回の内容 ­ 一行野郎 ­ 3. AWK の基 ­ レコードとフィールド ­ 3.1. レコードとフィールド ­ レコード ­ 3.2. レコードとフィールド ­ フィールド ­ 3.3. 覚えておいて欲しいこと ­ 1 オリジン言語 ­ 3.4. つまりどういうこと? 4. サンプルデータ 4.1. サンプルデータの取得 4.2. 今回のサンプルデータ ­ stars.txt ­ 4.3. 今回のサンプルデータ ­ 補足 ­ 4.4. AWK は行志向 4.5. サンプルデータを眺める ­ 1 ­ 4.6. サンプルデータを眺める ­ 2 ­ 4.7. サンプルデータを眺める ­ 3 ­ 4.8. サンプ

  • AWKブーム第1世代は「アイドル辞書」で学んだ――日本GNU AWKユーザー会 斉藤さん

    CodeZineがPodcastを始めます。「かまぷとゆうこのデベロッパーズ☆ラジオ」略して「デブ☆ラジ」。この番組では、USP研究所のかまたひろこと、CodeZine編集部の近藤佑子が、ソフトウェアデベロッパーのみなさんに向けて、IT技術に関するちょっといい話をお送りします。音声に加えて、ダイジェスト版の記事もお届け。記念すべき第1回のゲストは、日 GNU AWK ユーザー会 斉藤博文さんです。 iTunesからの視聴はこちら! 近藤佑子(以下、ゆうこ) 今回が第1回の放送なんですけれども、この番組はですね、今年の2月にあったオープンソースカンファレンスのあとに、2人で飲んでて「やろう」って言ってね。やっと始められましたね。 かまたひろこ(以下、かまぷ) そうですね。吉祥寺のCAFE ZENONで。 ゆうこ かまたさんはその前にも対談の企画をやられてたんですよね。 かまぷ はい。『So

    AWKブーム第1世代は「アイドル辞書」で学んだ――日本GNU AWKユーザー会 斉藤さん
    ot2sy39
    ot2sy39 2016/06/16
    引篭もりなので初めてお顔拝見したけど、斉藤さんイケメンじゃないか。玉木宏系。裏切られた(違う)
  • AWKとPowerShell

    非プログラマにもオススメのプログラミングの学習サイトです。https://nalu-labo.amebaownd.com

    AWKとPowerShell
    ot2sy39
    ot2sy39 2016/02/18
    待ち望んでたコンテンツかも。絶対後で見る。/追記:PSのテキスト処理なかなか面倒な感じだな…。とりま続きの回に期待。
  • Just another Ruby porter, 2015-12-a

    Docker小ネタ コンテナを消すときに % docker ps -l % docker rm `docker ps -lq` ってのはヒストリーを呼び出してよくやるが、 打つ文字が長くなっても % docker ps -l % docker ps -lq|xargs docker rm のほうがカーソルをあちこち動かさなくて済む分なんとなく速い。 巷にはdocker images --treeとか--vizとか便利そうなオプションの使用例があるが、 できるだけ小さく保つという方針によりすでにdeprecate。 --treeに関しては Deprecate 'docker images --tree' and 'docker images --viz' by shykes · Pull Request #5001 · docker/docker を参照。 ■ dockviz 昨日の--

    ot2sy39
    ot2sy39 2015/12/15
    備忘。改行ありフィールドの扱いについて。
  • 大きなテキストファイルをawkで処理するときにcatで投げ込むと速い理由 - ablog

    以下、長々と書いてますが、結論は ”私の環境で”大きなテキストファイルをawkで処理するときにcatで投げ込むと速い理由 - ablogに書いてます はじめに awk file より cat file|awk のほうが速いという以下のブログエントリが興味深いので調べてみました。 ちなみに cat file|awk が速くなる環境は稀で、巷では awk file のほうが速い環境のほうが多いようで、どちらが速いかは環境依存です。 [root@localhost sample]# cat command1 awk '$5 ~ /((26|27|28|29|30)\/Jun|(01|02|03)\/Jul)/{ print }' sample.txt > result1.txt (中略) [root@localhost sample]# time sh command1 real 0m53.92

    大きなテキストファイルをawkで処理するときにcatで投げ込むと速い理由 - ablog
    ot2sy39
    ot2sy39 2015/07/29
    検証せよ>自分
  • はてなブログ | 無料ブログを作成しよう

    わたし的棚ぼた一万円選書 急に千葉さんに手渡された封筒、開けてみたら1万円札が1枚。何ごとかと思えば、同期の出張を代わったお礼をもらったらしい。 「葵はワンオペで育児してくれたから」と半分わけてくれました。 泡銭の1万円 これはもう、わたし的1万円選書をしろという思し召しなのでは……

    はてなブログ | 無料ブログを作成しよう
  • 無効なURLです

    ot2sy39
    ot2sy39 2015/02/09
    「ということは、ヒアドキュメントは不要ということで、こんなふうにAWKのコードを書くことができます」 そう、こういう風にAWKコード書きたかったんだよ!
  • GNU AWKはまだまだ成長中! ユーザーの声をもとに作成された拡張機能を組み込んでみよう

    CodeZine編集部では、現場で活躍するデベロッパーをスターにするためのカンファレンス「Developers Summit」や、エンジニアの生きざまをブーストするためのイベント「Developers Boost」など、さまざまなカンファレンスを企画・運営しています。

    GNU AWKはまだまだ成長中! ユーザーの声をもとに作成された拡張機能を組み込んでみよう
    ot2sy39
    ot2sy39 2015/01/26
    うわ、gawkでinplace使えるようになってた。特定のケースで超便利だよね。あとは“y/abc/xyz/”があれば自分的にはかなり満足なんだが。
  • USP MAGAZINEコラボレーション連載/「シェル芸」に効く AWK処方箋一覧

    CodeZine編集部では、現場で活躍するデベロッパーをスターにするためのカンファレンス「Developers Summit」や、エンジニアの生きざまをブーストするためのイベント「Developers Boost」など、さまざまなカンファレンスを企画・運営しています。

    USP MAGAZINEコラボレーション連載/「シェル芸」に効く AWK処方箋一覧
  • http://gauc.no-ip.org/awk-users-jp/blis.cgi/DoukakuAWK_182

    ot2sy39
    ot2sy39 2014/12/02
    awkでtrする記事。自分的にはtrがないのはawkの一番の不満点。
  • 統計屋のためのAWK入門 - あんちべ!

    はじめに 稿はAWKという言語を用いて、 ごく簡単にデータ分析用の前処理*1をするための解説記事です。 AWKは短いコマンドを記述するだけで多様なデータ処理を可能にします。 特にデータの抽出に関して恐るべき簡易さを提供します。 具体的には、input.txtというファイルの中から "fail"という文字列を含む行を抽出したければ次のように書くだけです。 awk /fail/ input.txt つまり、スラッシュ記号で文字列を指定するだけで その文字列を含む行を抽出できるのです。 大変簡単ですね! また、awkはLinuxMacには標準で入っており、 Windowsでもawk.exeを一つ用意するだけなので、 面倒なインストール作業や環境構築は不要で誰でも即座に使えるため、 自分で書いた処理を他人に渡したり*2各サーバに仕込むなども簡単に出来ます。 複雑な処理をする場合はPython

    統計屋のためのAWK入門 - あんちべ!
    ot2sy39
    ot2sy39 2014/09/16
    “面白い範囲指定として/start/, /end/という方法があります” これ頭から抜けてるとき多い。
  • Just another Ruby porter, 2014-8-a

    ruby-talk ML なんか急にruby-talk MLが止まってしまって、 どうなってるのかログを見てもよくわからず、 週末にでもじっくり調べようと思っていたら、 今日になって突然流れてきた。 単に寂れただけ? 他のruby-coreとかは動いていたしなあ。 ■ 第12回当は怖くないシェル芸勉強会 Q6をzshで。 % printf "5\n3\n4\n10\n2\n" | while read a;do echo ${(l:2:)a} ${(l:a::*:)};done 5 ***** 3 *** 4 **** 10 ********** 2 ** awkで文字を繰り返すにはOFSを使う手もある。 % awk 'BEGIN{NF=5+1; OFS="*"; print}' ***** % printf "5\n3\n4\n10\n2\n" | awk '{printf "%2

    ot2sy39
    ot2sy39 2014/08/05
    すごい。awkは、通常参照用としか思えないシステム変数(NFとか)への代入を覚えると幅が広がる。
  • Mitzyuki's Blog :: grep & awk

    grep & awk grep "^HOGEHOGE" file | awk 'BEGIN { FS = "="}; { print $2 }' というコード。一見何も問題ない様に見えるし確かに動作はするが、 CPU とプロセスと時間の無駄遣いである。 awk (1) には拡張正規表現が実装されているで、 awk 'BEGIN{FS="="}/^HOGEHOGE/{ print $2 }' file とすれば grep (1) の分だけ CPU やプロセス、時間が節約できる。 sed -n '/^HOGEHOGE/s/^.*=//p' file とするのも等価かな。 行指向の処理であれば煩雑な awk (1) よりも sed (1) の方が見やすいので、 個人的には sed (1) を利用した方法がお勧め。 シェルスクリプトに限らずスクリプト言語で記述されたプログラムは、 source f

  • awkへシェルスクリプトの変数を渡す - Qiita

    シェル変数として渡したいのは、「パターン」もしくは「アクション」です。 1. パターンをシェル変数として渡す場合 /'"${shell_pattern}"'/のように、変数をシングル、ダブル、<シェル変数>、ダブル、シングルクォーテーションで括ればよい。 2. アクション(パターン以外)にシェル変数を渡す場合 -vオプションを使う -v awk_action_val="${shell_action_val}" 1,2.を組み合わせたサンプル

    awkへシェルスクリプトの変数を渡す - Qiita
  • koie blog : awkのフィールド参照について

    2014年03月26日12:54 カテゴリsw awkのフィールド参照について awkは$1,$2とかで入力行のフィールドを参照できるが、$iのように変数はつかえないと思っていた。というのはshではできないから。 % cat foo echo $1 I=1 echo ${$I} % sh foo xxx yyy xxx foo: ${$I}: Bad substitution % awkだとこんな感じ。 % echo xxx yyy | awk '{ I=1; print $I }' xxx % awkはCに似せているだけあって値のセマンティックスなのにたいして、shはマクロ展開が基なのでいろいろ違って当然なのだが、いったいどういう文法になっているのかFreeBSDのawkのソースコード(/usr/src/contrib/one-true-awk)をのぞいてみた。 構成はlex.cが字句

    ot2sy39
    ot2sy39 2014/03/26
    $123とか、$123456とかもいけるんかな。いけそうだけど。1行の長さの制限はあったっけ? (追記:10万フィールドまでは扱えるのを確認。それ以上はソース見ないと不明)
  • awk に標準出力をバッファさせないようにする

    cles::blog 平常心是道 blogs: cles::blog NP_cles() « iPhone の電話帳を Excel で編集する :: iFace というストラップホールのあるケースを買っ... » 2014/02/14 awk に標準出力をバッファさせないようにする  awk  sh 1194 3へぇ vmstat の出力にはタイムスタンプがないので、こんな感じで awk を使ってタイムスタンプをつけていたのですが、これをファイルにリダイレクトして、そのファイルを tail -f で追いかけてみても一向に内容が更新されないという現象が発生して困ってしまいました。 $ vmstat 1 | awk '{print strftime("%Y-%m-%d %T ") $0;}' 2014-02-14 21:12:56 procs -----------memory--------

    awk に標準出力をバッファさせないようにする
    ot2sy39
    ot2sy39 2014/02/14
    “これまでにも C 言語の printf() や Python でハマった経験から、標準出力のバッファリングの問題に間違いない” こういう勘がはたらくのは経験の賜物だよね。