並び順

ブックマーク数

期間指定

  • から
  • まで

1 - 25 件 / 25件

新着順 人気順

awkの検索結果1 - 25 件 / 25件

  • なるべく書かないawkの使い方 - ザリガニが見ていた...。

    awkという、古くからのスクリプト言語がある。(1977年生まれ。読み方は「オーク」である。エイ・ダブリュ・ケイではない)man awkをPDFに変換してみると、たったの3ページ強しかない。 $ man -t awk|pstopdf -i -o ~/Downloads/awk.pdf とてもシンプルな言語仕様ではあるが、awkには必要十分な表現力がある。特にテキストを処理する場面においては、最小限のシンプルな記述で、気の利いた処理を素早くこなす。無駄のないawkワンライナーを見ると、ある種の感動を覚える。awk以降に生まれたスクリプト言語は、少なからずawkの影響を受けていると思われる。 awkを知ることで、間違いなく幸福度は上がると思う。いつかきっと「知ってて良かった」と思える時が来るはず。もっともっと、awkを知りたくなってきた。 基本動作 awkの基本動作は、とってもシンプルである。

      なるべく書かないawkの使い方 - ザリガニが見ていた...。
    • シェルスクリプトの中で1行ずつ変数を分割する際には、cutとかawkとか余計なプロセスを起動せずsetを使って分割した方が効率的 - 双六工場日誌

      シェルスクリプトの中で、スペース区切りもしくはタブ区切りのレコードを扱うことがよくあると思います。 たとえば、前回のエントリ「AWS CLIとjqを使って、AWSのELBボリュームがアタッチされているEC2インスタンス名を出力するワンライナーを書いた - 双六工場日誌」のスクリプトの出力は以下のようになります。 i-ec56a9f5 vol-07d00601 servername i-ec56a9f5 vol-8f550991 servername このようなレコードの特定の列を取り出して、処理する際にどうするのが効率的か、というのがこのエントリのお題です。 非常に古い話題なので、昔からシェルスクリプトを書いている人には自明な話ではありますが、最近、シェルの標準機能の話を聞く機会がなく、失われつつある技術になってきている気がしているので、改めて確認ということで。 例として挙げたレコードから

        シェルスクリプトの中で1行ずつ変数を分割する際には、cutとかawkとか余計なプロセスを起動せずsetを使って分割した方が効率的 - 双六工場日誌
      • 統計屋のためのAWK入門 - あんちべ!

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

          統計屋のためのAWK入門 - あんちべ!
        • 大きなテキストファイルを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
          • 大きなテキストファイルをawkで処理するときにcatで投げ込むのと、ファイル読み込みするのどっちが速いか比較 - カメニッキ

            追記が増えたので整理 経緯 2.5GBのテキストファイルを加工する必要があり、①vimで開いて加工→vim死亡②sublime textで開いて加工→sublime text死亡となったため、awkを用いて以下の様なコマンドを実行した。 $ cat sample.txt | awk '$5 ~ /((26|27|28|29|30)\/Jun|(01|02|03)\/Jul)/{ print }' > result.txt すると 「catいらなくね?」と指摘 さらにMATSUMOTO, Ryosuke (@matsumotory) | Twitter < 「キャッシュに入れて高速化してるんかと思った」 とコメントをもらいました。ので、どっちが速いかの検証です。 注意 加工の目的はログファイルからある期間だけの行を抜き取りたい 正規表現がいけてないのは気にしない 比較 awkにファイル指定す

              大きなテキストファイルをawkで処理するときにcatで投げ込むのと、ファイル読み込みするのどっちが速いか比較 - カメニッキ
            • プログラミング言語AWKのここがLOVE

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

                プログラミング言語AWKのここがLOVE
              • awk歴一日の初心者が語るawk理解のポイント - シリコンの谷のゾンビ

                今までテキスト処理などでワンライナーを使うときはperlを使っていた.Perlを先に覚えた身としてはawkやsedは過去の産物だと思い込んでいた.awkの方が簡潔に書けるケースに出くわしたことをきっかけにawkを勉強してみたら単な食わず嫌いだったことに気が付いたのでポイントをまとめてみる. なおプログラミング言語としてはAWKという表記が正しく (Aho, Weinberger, Kernighanの頭文字! ということだけは以前から知っていた),オリジナル処理系のことをawkと呼ぶのだろうけれど,今回は処理系の違いは気にしないのでawk, nawk, gawkの違いは気にしないことにした.ていうか詳しく知らない. 「awkってなんぞ?」という方が対象読者.スクリプト言語と正規表現の基礎知識が少しでもあれば,たぶんすぐに使えるようになると思う.awkを一度でも使ったことがある人には新しい情

                  awk歴一日の初心者が語るawk理解のポイント - シリコンの谷のゾンビ
                • awkで作られた3Dシューティングゲーム「awkaster」が凄い | ソフトアンテナ

                  awkといえばgrep、sed等とともにUNIX黎明期から存在するテキスト処理コマンドとして知られています。最近は高機能なスクリプト言語が台頭し、使いこなせる人も小数派となってきたなか(?)、awkを使ってなんと3Dシューティングゲームが開発されてしまいました。その名も「awkaster」gawk 4.0.0以上を使用しターミナル上で動作します。 awkasterは、レイキャスティングと呼ばれる技術を使った疑似3Dシューターで、モンスターと闘いつつマップを移動して脱出エレベータを目指すゲームです。 ターミナルを開き「gawk -f awkaster.awk」で起動できます。 キーバインドはWASDキーで移動、pで弾丸を発射、1-4でカラーモードの変更、xでエレベーターの起動となっています。 awkを使いこなし、かつゲームプログラミングにも詳しい方はソースコードを探検してみると新たな発見があ

                    awkで作られた3Dシューティングゲーム「awkaster」が凄い | ソフトアンテナ
                  • AWKのススメ - クックパッド開発者ブログ

                    はじめまして。インフラチームの菅原といいます。 今年の7月に入社してから、コンソールとにらめっこする毎日を過ごしています。クックパッドのようにアクセスの多いサイトのサーバを扱うことが今まで無かったので、いろいろと勉強になることが多いです。 さて、インフラチームではサーバの状況をモニタリングして、サーバに問題がないかを常に把握するようにしています。そのため日常的にtailでログを追いかけているのですが、そんなときはAWKが非常に便利なことに気付き、最近はかなりAWKにハマっています。 今回は絶賛マイブーム中のAWKの活用例をご紹介したいと思います。 なぜAWKなのか? 残念ながらAWKの知名度はあまり高くないようで、社内でも「なぜRubyでやらないのか?」と聞かれることがありました。僕も入社するまではcutの代わりぐらいにしか使っていなかったのですが、あるときログ出力の整形に使って以来、AW

                      AWKのススメ - クックパッド開発者ブログ
                    • 俺とおまえとawk - 俺たちのブログ

                      「EFK (Elasticsearch + Fluentd + Kibana) なんて甘えですよ、漢は黙って awk | sort | uniq -c ですよ」と誰かが言ってたような言ってなかったような気がするのでログさらう時に自分がよく使う awk 芸について書きます。 想定データサンプル こんなフォーマットで出る TSV 形式の Web アプリケーションログがあったとします。[TAB] はタブ文字です。 時間[TAB]ステータス[TAB]HTTPメソッド[TAB]URI[TAB]リクエストタイム 例えばこんな感じです。このログを awk 芸で処理していきます。 access.log 2014-12-05 12:00:00[TAB]200[TAB]GET[TAB]/api/v1/ping[TAB]0.017832 2014-12-05 12:00:01[TAB]200[TAB]POST[

                        俺とおまえとawk - 俺たちのブログ
                      • 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月発売
                        • 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
                          • 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へ移行、名前空間が実装
                            • AWKで一番の得意ワザ! シェルで文字列を自在に扱うための文字列関数

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

                                AWKで一番の得意ワザ! シェルで文字列を自在に扱うための文字列関数
                              • awkでつくってわかるWebアプリケーション / Web Application Implementation in awk

                                YAPC::Hiroshima 2024での、awkによるWebアプリケーションの実装方法について紹介した発表の資料です。 元となった実装は https://github.com/yammerjp/awkblog にあります。 デモアプリケーションは https://awkblog.net にあります。

                                  awkでつくってわかるWebアプリケーション / Web Application Implementation in awk
                                • sed awk make 互換性 つらい うんざりザリガニ - Lambdaカクテル

                                  仕事でsedのコードをパパッと書いて使ったら、コードレビューで動かんと言われてしまった。そういえば、同僚はMacで、おれはLinuxだったな。 まぁsedならよくある話なので、しょうがないと思ってawkで同じことをした。awkは比較的もうちょっと互換性がある気がしているからだ(どっこいどっこいな気もする)。 しかしまだ動かないと言う。もう、大絶叫だ。アー。おしまいだ。カスがよ〜〜〜と思いつつ(社会人なので絶叫はしない)、よく調べてみるとmakeの互換性だった。というのも、試しにbrew install makeしてGNU Makeで試してみてくれ、と言ったら、あっさり動いたからである。実はsedもawkも悪くなくて、そいつを呼び出してるmakeに互換性がなかった。ごめんな、お前たち悪くなかったよ。でもそれはそうと互換性はない。 define foobarstring ... endef #

                                    sed awk make 互換性 つらい うんざりザリガニ - Lambdaカクテル
                                  • シェルコマンドを使った処理の効率化は AWKの行(レコード)操作がカギをにぎる

                                    編注1:「シェル芸」とは、UNIXシェル(主にbash)のワンライナーを駆使して文字列加工を自由自在に操ることです。また、そのような能力をもつ人をシェル芸人と呼びます。 「行」=「レコード」 デフォルトでAWKは「行」を「レコード」というものとして扱います。正しくは組込変数RS (Record Separater) で区切られたものをレコードと呼びますが、デフォルトでは、この組込変数RSは改行になるため、行がレコードそのものになります。また、このレコード単位の分割は、アクションでテキストファイルを読み込むと必ず行われるものとなっているため、ユーザーが特別に分割処理をしなくてもレコード単位で扱ってくれる、とても便利な仕組みです。 特殊なものとして、段落単位で読み込むために組込変数RSに空文字列を代入するものや、GNU AWK編注2ではファイル全体をひとつのレコードとして読み込む手法、組込変数

                                      シェルコマンドを使った処理の効率化は AWKの行(レコード)操作がカギをにぎる
                                    • Effective AWK Programming A User's Guide for GNU Awk

                                      Effective AWK Programming A User's Guide for GNU Awk Edition 1.0.4 April, 1999 Arnold D. Robbins はじめに awkとgawkの歴史 The GNU Project and This Book Acknowledgements Introduction Using This Book Dark Corners Typographical Conventions 例で使用するデータファイル Getting Started with awk A Rose By Any Other Name awkプログラムの実行の仕方 使い捨ての一発awkプログラム 入力ファイルなしのawkの実行 長いプログラムを実行する 実行可能なawkプログラム awkプログラム中のコメント 非常に単純な例 二つのルールを持つ例

                                      • USP 友の会勉強会 AWK 一行野郎百裂拳

                                        USP 友の会勉強会 2013/12/22 AWK 一行野郎百裂拳 Normal Action-less 1 awk '{print $0}' awk '4' ファイルの中身を書き出す。 ≒ cat 2 awk '{}' awk '' 何も表示しない。 ≒ cat > /dev/null 3 awk '{print NR, $0}' awk '$0 = NR " " $0' 行番号を付ける。 ≒ cat -n 4 awk 'NR <= N {print $0}' awk 'NR <= N ' 最初の N 行を抜き出す。 ≒ head -n N 5 awk 'NR == N , NR == M {print $0}' awk 'NR == N , NR == M ' N 行目から M 行目を抜き出す。 6 awk 'NR >= N && NR <= M {print $0}' awk 'N

                                        • AWK Users JP :: 日本の AWK ユーザのためのハブサイト

                                          YAPC::Asia 2008 で Michael Schwern は「SEO に有効な独自ドメインを取って、もっと Perl 初心者が集まりやすい nice な Perl の情報を集めたサイトを作れ!」と言っていたので、ここに AWK-users.jp を開始します。 Perl Is unDead - Michael Schwern (Schwern) これは awk も同じであり、ちょうど Perl-users.jp の発表のある前日に Web サイトの再構築の話題を ML に出したところでした。 微妙なタイミングだなぁに書きましたが、Perl Is unDead - Michael Schwern (Schwern) の中の話を私なりに awk でも通用するようにまとめると以下のようになると思います。(聞き取れていないかもしれませんが・・・) あたかもゾンビが脳みそを欲しがるように、

                                          • AWK Users JP :: awk 基礎文法最速マスター

                                            この文書は書きかけです ここでは nawk (new awk) で使用可能な命令で記述しています。 gawk (GNU awk) を使うことで、さらに効率よい記述を行うことができますが、nawk の文法で覚えておくと全ての awk で使うことができます。 print 文 表示は print 文です。 print "Hello World!"; コメント # 以降がコメントになります。 スクリプトの実行 以下のように '-f' に続いてスクリプトを指定します。 nawk -f foo.awk 複数の awk スクリプトを指定することもできます。 nawk -f foo1.awk -f foo2.awk -f foo3.awk スクリプトを直接指定できます。 # "Hello World" と表示 nawk 'BEGIN { print "Hello World" }' BEGIN, END,

                                            • ”私の環境で”大きなテキストファイルをawkで処理するときにcatで投げ込むと速い理由 - ablog

                                              大きなテキストファイルをawkで処理するときにcatで投げ込むと速い理由 - ablog を書きましたが、awk file > file より cat file|awk > file が速い環境は稀なようなので、私の環境でなぜ cat file|awk > file のほうが速いのか調べてみました。プロセススケジューラが関係しているようです。 ↑はPerf + Flame Graphs で、awk file > file 実行時のコールスタックと所要時間を可視化したものです。 結論(たぶん) SSDの暗号化・復号をカーネルスレッドで行なっているのと、プロセススケジューラが awk とカーネルスレッドを同じ CPU にスケジューリングしていた(他に空いている CPU があるのに)。 awk file > file では暗号化データを復号するカーネルスレッドと awk のプロセスをプロセススケ

                                                ”私の環境で”大きなテキストファイルをawkで処理するときにcatで投げ込むと速い理由 - ablog
                                              • AWKの第一歩

                                                小栗栖 修 金沢大学理学部計算科学科 2001年1月8日(月): 第1版 2002年10月10日(木):第1.1版 ogurisu[AT]kanazawa-u.ac.jp この文書の目標は AWKを使ったことがない人が使い始めるきっかけになれば というところにあります。 Cや Javaよりも気楽にプログラミングが楽し めて、もちろん実用的なプログラムが書けるのが AWKやperl, rubyに代表さ れるスクリプト言語です。すでにweb上にも AWKの文書が日本語のものも含 めてたくさんあります。本格的なマニュアル形態の文書も、 A4に印 刷して数枚程度のものもあります。が、ちょっと使ってみようというには本格 的な文書はしんどいし、 A4数枚程度のものは簡潔すぎて何ができる のかよくわからないと思います。それを補完できればなと思っています。もし、 この文書以上のことをしたくなったら、もっと

                                                • GNU awk (gawk) を用いた Apache ログ解析方法

                                                  2. 自己紹介 斉藤博文 日本 GNU AWK ユーザー会主宰。 hi_saito@yk.rim.or.jp @hi_saito http://gauc.no-ip.org/awk-users-jp/ さて、今回の課題です。 3. 目的 Apache のログを簡単に整理したい。 combined 形式でも common 形式でも手 軽に処理したい。 項目分割を簡単にしたい。 コードの量を少なく、分かりやすくしたい。 でも awk は Apache の処理が苦手です。 4. 何故、苦手なのか 何故、苦手なのか? Apache のログ項目は 3 つの形式がある。 スペース区切。 → awk で処理できる。 ダブルクォートで囲まれて中身にスペースが含ま れる。 大括弧で囲まれて中身にスペースが含まれる。 そんな時には GNU awk (gawk) です! 5. 形式の combined 形式のロ

                                                    GNU awk (gawk) を用いた Apache ログ解析方法
                                                  • awk入門 コマンドの使い方とスクリプトの書き方

                                                    cos 余弦(コサイン)を返す関数です。 number cos(number) exp 指数を返す関数です。 number exp(number) exp関数の使用例を以下に示す。 $ cat naturalnumber.txt 1 2 3 4 5 $ awk '{print $1, exp($1)}' naturalnumber.txt 1 2.71828 2 7.38906 3 20.0855 4 54.5982 5 148.413 getline number getline() 現入力ファイルの次のレコードを組み込み変数 $0 に設定します。getline 関数は正常終了時には1を、ファイルの終わりに達すると0を、エラー発生時には-1を返します。 index number index(string, substring) 文字列 string の中で文字列 substring が最

                                                    1