並び順

ブックマーク数

期間指定

  • から
  • まで

1 - 32 件 / 32件

新着順 人気順

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

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

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

      プログラミング言語AWKのここがLOVE
    • 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でつくってわかる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カクテル
          • perl for shell, awk and sed programmers

            YAPC::Hakodate 2024 Track A 12:25〜

              perl for shell, awk and sed programmers
            • プログラミング言語AWK 第2版

              「AWK」という名前は開発者の頭文字Aho、Weinberger、Kernighanから来たもので、長い歴史を持つ、テキスト処理用のスクリプト言語です。Unix・Linuxにはデフォルトでインストールされており、多くの人に利用され、愛され続けています。改訂に伴い、計算/集計、データ分析といった話題の追加、CSV入力、Unicode対応など、時代に即したアップデートが行われています。 『プログラミング言語AWK』第2版 日本語版まえがき まえがき 1章 Awkチュートリアル 1.1 さあ始めよう 1.2 簡単な表示 1.3 書式付き表示 1.4 選択 1.5 計算 1.6 制御フロー文 1.7 配列 1.8 便利な一行プログラム 1.9 さて次は? 2章 Awkの実践例 2.1 個人用ツール 2.2 選択 2.3 変換 2.4 データ要約 2.5 個人用データベース 2.6 個人用ライブラリ

                プログラミング言語AWK 第2版
              • AWK As A Major Systems Programming Language — Revisited

                Preface ¶ I started this paper in 2013, and in 2015 sent it out for review to the people listed later on. After incorporating comments, I sent it to Rik Farrow, the editor of the USENIX magazine ;login: to see if he would publish it. He declined to do so, for reasonably good reasons. The paper languished, forgotten, until early 2018 when I came across it and decided to polish it off, put it up on

                • GitHub - raygard/wak: wak -- an awk implementation for toybox and standalone

                  You signed in with another tab or window. Reload to refresh your session. You signed out in another tab or window. Reload to refresh your session. You switched accounts on another tab or window. Reload to refresh your session. Dismiss alert

                    GitHub - raygard/wak: wak -- an awk implementation for toybox and standalone
                  • An awk implementation

                    An awk implementation Rob Landley’s toybox project provides a variety of Linux command-line tools, similar to busybox. I have written a compact but fairly complete awk implementation intended to integrate with toybox, but it can also build standalone. This implementation is named wak, because all the good awk names are taken. But when used in toybox, it’s just awk, or toybox awk. wak is coded in C

                    • Lila: a Lil Interpreter in POSIX AWK

                      Lila: a Lil Interpreter in POSIX AWK AWK is among the most ubiquitous programming languages in the world. Much like ed, the standard text editor, awk is a mandatory component of any POSIX operating system. On a fresh-out-of-the-box Mac, tunneling into the embedded Linux environment on your router, or scrabbling away at GitBash on a Windows machine, you may not have access to Python, Perl, or even

                      • 諸 勝文 数字・お金・データが苦手な社長をサポート/中小企業診断士 on X: "これは真実。 最近は現業職の有効求人倍率が猛烈に高く給料も上がっているが、事務職は相変わらず人余り。特に建設業は金脈とさえ言える状況。 https://t.co/co1AWk29Jr"

                        • Aho - AWKで作られたGit実装 | ソフトアンテナ

                          今や世界中の開発者がバージョン管理ツール「Git」を使用しています。 GitはLinuxを生み出したリーナス・トーバルズ氏がカーネル開発用に作成したバージョン管理で、巨大なソースコードを扱うためのさまざまな工夫がこらされています。 本日紹介する「Aho」は、このGitをAWKで実装するオープンソースプロジェクトです。 開発者のDouglas Anderson氏は、最新のAWK(gawk)はワンライナー以上のことができ、(Ahoは)Gitの内部構造やGNU AWKの新しい機能を探求するための、トイプロジェクトだと説明しています。 実用性を追求したプロジェクトではありませんが、GitやAWKに興味のある方にとっては参考にすべき部分がありそうです。 なお「AWK」は開発者であるAlfred Aho、Peter Weinberger、Brian Kernighanの頭文字からつけられており、プロジ

                            Aho - AWKで作られたGit実装 | ソフトアンテナ
                          • 『プログラミング言語AWK 第2版』の査読を担当しました - 何かを書き留める何か

                            原書初版は1988年 2024年5月16日にオライリージャパンから『The AWK Programming Language, 2nd edition』の邦訳である『プログラミング言語AWK 第2版』が発売される。 www.oreilly.co.jp 今回、主に日本語回りの校正、Python周りのチェックをお手伝いした。 AWKは主にテキスト処理に用いられるプログラミング言語である。 もはやAWKの名前の由来など解説する必要がないかもしれないが、エイホ、ワインバーガー、カーニハンの頭文字を並べたものである。 いずれのお三方も計算機科学の重鎮である。 最初はだれだってAhoの読み方に困惑するはずだ。 原書初版は1988年であり、35年振りに改訂が行われた。 主な変更点はUnicode対応やCSVなどのデータ集計に関する機能であり、ある意味では変わっていないともいえるし、現代でも使える言語に進

                              『プログラミング言語AWK 第2版』の査読を担当しました - 何かを書き留める何か
                            • A brief interview with AWK creator Dr. Brian Kernighan

                              November 15, 2022 — Dr. Brian Kernighan is a Canadian computer scientist who contributed to the development of UNIX at Bell Labs. Along with Dennis Richie, he co-authored a fundamental book on C, The C Programming Language. He has been training the next generation of programmers at Princeton University since 2000 and has been monumental in his contribution to the computer science community at larg

                                A brief interview with AWK creator Dr. Brian Kernighan
                              • awkでmrubyを実行できるようにした(?) - ぶていのログでぶログ

                                GNU awk(以下awk)のDynamic Extension機能を使って、awkの内部でmrubyを実行できるようにしてみた! 上記の画像のように、mruby.soをローカルにダウンロードし、-l./mruby.soオプションを付与するとmruby_eval関数が使えるようになる。 mruby.soはリポジトリのReleaseページからダウンロードできる。なお、linux-amd64環境のみサポートしている。 github.com 作ろうと思ったきっかけ id:hibomaが会社Slackに「/etc/profile.d/gawk.shというスクリプトがあるがどういう目的なのか?」という趣旨の投稿をしていた。このスクリプトの中身をみるとAWKPATHとAWKLIBPATHという2つの環境変数を設定するものだった。 この2つの環境変数がawkの挙動にどのような影響を与えるかを調べていたと

                                  awkでmrubyを実行できるようにした(?) - ぶていのログでぶログ
                                • 8.4.1 awkコマンド(テキストの加工やパターン処理をする) : JP1 Version 11 JP1/Advanced Shell

                                  形式 awk[-F 入力フィールドセパレータ][-v 変数名=変数値]... [-f スクリプトファイルのパス名|スクリプト] [[対象パス名...]|[組み込み変数名=変数値...]]... 機能 テキストファイル内の各行(以降,レコードと呼びます)に対して特定のパターンに一致する行を検索し,一致した行に対して指定した処理をします。 引数 -F 入力フィールドセパレータ 入力フィールドセパレータの値を指定します。この指定値がawkコマンドの組み込み変数FSの値となります。 -v 変数名=変数値 変数名とその値を指定します。変数名とその値は,-fオプションに指定したスクリプトファイルまたは引数に指定したスクリプトに渡されます。複数個指定できます。同じ変数名を複数回指定した場合,最後に指定した値が設定されます。 -f スクリプトファイルのパス名 入力ファイルを検索するパターンおよびパターンと

                                  • AWK(gawk)でシンプルな自作言語のコンパイラを書いた

                                    $ echo ' func add(a, b) { return a + b; } func main() { call add(1, 2); } ' | gawk -f mrcl_lexer.awk | gawk -f mrcl_parser.awk | gawk -f mrcl_codegen.awk # ↓アセンブリが出力される call main exit label add push bp mov bp sp mov reg_a [bp:2] push reg_a mov reg_a [bp:3] push reg_a pop reg_b pop reg_a add reg_a reg_b mov sp bp pop bp ret mov sp bp pop bp ret label main push bp mov bp sp mov reg_a 2 push reg_a mo

                                      AWK(gawk)でシンプルな自作言語のコンパイラを書いた
                                    • 小数対応のseqコマンドをawkで実装してみた ~ 小数を扱うプログラムは難しいという話 - Qiita

                                      はじめに 少し前に seq コマンドを awk を使って実装してみました。表面上はシェルスクリプトになっていますが、シェル関数として使えるようにラッパーにしているだけでオプション解析も含めて全て awk で実装しています。 実装した理由は seq コマンドを POSIX で標準化するのは可能だろうか?という研究のためです。元々 seq コマンドは 1985 年の Version 8 Unix で初めて実装されたものであり、1995 年に GNU で再実装されました。BSD Unix では実装が遅れましたが現在ではすべての BSD 系 Unix で実装されています。Solaris でも GNU 版が標準で組み込まれており、今なら seq コマンドは POSIX で標準化が可能になったのではないか?という検証のためです。 この記事ではこれ以上 POSIX での標準化の話はしませんが、この検証作

                                        小数対応のseqコマンドをawkで実装してみた ~ 小数を扱うプログラムは難しいという話 - Qiita
                                      • awkで各行の特定の列項目の数値を足し合わせる|サラトガ牧場

                                        以下は特定のタイミングの nginx の pod のリソース。 kubectl top pods した結果で、CPU と memory のリソースがリスト化されている。 NAME CPU(cores) MEMORY(bytes) nginx-cb8bbf5f6-9mpx2 4m 651Mi nginx-cb8bbf5f6-ccwvf 3m 641Mi nginx-cb8bbf5f6-q9trz 3m 636Mi nginx-cb8bbf5f6-zzsbx 4m 641Mi この程度ならパッと見で CPU と memory の合算も可能。 ただ、数が多いと大変ですよね。 今回は、このようなテキスト出力されたものの合計値を aws で手軽に計算します。 CPUの合計 冒頭のリストが出力されているファイルを「log.txt」とします。 CPU は 2 列目なので、以下のように 2 列目を合計して

                                          awkで各行の特定の列項目の数値を足し合わせる|サラトガ牧場
                                        • awkで最後から2番目のカラムの値を取得する|サラトガ牧場

                                          Apache のアクセスログを見ていたら、リクエストの処理に掛かった時間が最後から 2 番目に出力されるログ設定になっていました。 ちなみに、%T が秒で、%D がマイクロ秒となるので、用途に合わせて出力しておくと調査時に便利です。 さて、そんな処理時間を調査する作業があったのですが、残念なことに出力される場所が UserAgent よりも後なので、単純に半角スペースで区切ってしまうと何番目かがわかりにくくなります。 後ろから数えた方が早い場合は$NFを使う そこで、NF(Number of Filed)と言う組み込み変数を使います。 これは該当レコードのフィールド数を持ってくれているので、これによって最後の項目が何番目かが分かります。 下記は nginx のアクセスログの例ですが、nginx は log_format に $request_time を定義していると、そこに処理時間を出力

                                            awkで最後から2番目のカラムの値を取得する|サラトガ牧場
                                          • awkでcsvの最初の数列を削除する

                                            1,hoge,red,dog 2,fuga,blue,cat 3,foo,green,fish 4,bar,yellow,bird

                                              awkでcsvの最初の数列を削除する
                                            • awkで特定の条件にマッチした行を表示 - Qiita

                                              Deleted articles cannot be recovered. Draft of this article would be also deleted. Are you sure you want to delete this article?

                                                awkで特定の条件にマッチした行を表示 - Qiita
                                              • awkでオプション解析(getopts相当の実装) - Qiita

                                                はじめに awk でオプション解析を行いたかったのでシェルの getopts 相当の機能を持つ関数を実装しました。ロングオプションなどには対応していません。gawk だけではなく POSIX に準拠したどの awk の実装でも動作します。 awk 版 getopts の実装 getopts という関数名にしていますが、シェルの getopts コマンド互換のインターフェースにするつもりはありません。 function getopts(optstring, args, i, j) { i = OPTIND ? int(OPTIND) : (OPTIND = 1) j = int(substr(OPTIND, length(i) + 2)) OPTERR = OPTARG = "" if (!(i in args)) return 0 if (args[i] == "--") { OPTIND

                                                  awkでオプション解析(getopts相当の実装) - Qiita
                                                • 【GLEAT】大仁田厚が正面からの〝邪道式乱入〟もT―Hawkが拒絶「チケット持ってるのに…」 | 東スポWEB

                                                  GLEAT25日の新宿大会に、〝邪道〟大仁田厚(66)が宣言通りに乱入した。 FMWE8月24日の川崎大会で大仁田は、GLEATの反体制派「反GLEモンスターズ」を率いる河上〝ファイヤー〟隆一から協力要請を受けた。これに「ファイヤーって名乗ってるんだろ? 俺が応援しないでどうするよ?」と受諾。その上で「骨のある選手で団体に(鈴木裕之社長を爆破する)行動で物申した。実にプロレスらしくていいじゃないか。なのにクビ食らって、正直うだつが上がらない。若い力が、かわいそうに…。俺からも社長にひと言物申したいね」とこの日チケットを購入しての〝乱入〟を予告していた。 すると第2試合終了後、仲間と共にリングジャックした河上の「大仁田先輩!」との呼びかけに応えて登場。するとこれに即反応したのがT―Hawkだった。猛スピードで駆け寄られたT―Hawkに大仁田が引き連れていた木原文人リングアナを吹っ飛ばされ、リ

                                                    【GLEAT】大仁田厚が正面からの〝邪道式乱入〟もT―Hawkが拒絶「チケット持ってるのに…」 | 東スポWEB
                                                  • (GNU)AWKで簡易Webフレームワークを作る - Qiita

                                                    はじめに 「シェル芸」に効く!AWK処方箋を読んでいたところ、下の記述に目が留まりました。 Socket通信ができるということは、Webサーバーも構築できるということです。 AWKはサーバーサイド言語だった つくったもの というわけで、AWKの簡易Webフレームワークを作成しました。 GitHub - Syuparn/webawk: simple (mock) web server framework written in awk REST APIサーバーをワンライナーで実行します。 AWKのWebサーバー実装は既にGitHubに大量にあったので、n番煎じなりにちょっと設計にオリジナリティを入れてます。 動作条件 GNU AWK (5.0.0+) モジュールを使っているので4系では動きません... jq JSONのパース処理の実装完全にさぼりました 使い方 # 8000番ポートで起動 $

                                                      (GNU)AWKで簡易Webフレームワークを作る - Qiita
                                                    • Bashコマンドawkで全てのカラムを出力 - プログラミングの「YUIPRO」

                                                      プライバシーと Cookie: このサイトは Cookie を使用しています。このサイトの使用を継続することで、その使用に同意したとみなされます。 Cookie のコントロール方法を含む詳細についてはこちらをご覧ください。 Cookie ポリシー

                                                        Bashコマンドawkで全てのカラムを出力 - プログラミングの「YUIPRO」
                                                      • プログラミング言語AWK 第2版|はまち

                                                        学生時代に図書館で読んだ「プログラミング言語AWK」が、今の時代になんと、第1版から35年ぶりに大幅改訂されて第2版として出版されていたので、驚きとともに、なんだか懐かしくなって購入して読み返してみた。 内容は、最近の状況に合わせて、awkを使ったEDAや、簡易な専用言語の作例として、matplotlibを使ったグラフ表示するpythonコードを生成する例に見直されていたり興味深い。 このような課題は、実際の場面では、素直にpython+pandasとかを使うのだろうけど、それはともかく。awk言語のチュートリアルから始まって、インタプリタやパーサーの実装、はたまた、計算機科学の教科書のようなソートアルゴリズムの解説と実験など、料亭の幕の内弁当のような名著だと思う。 オススメの一冊です!

                                                          プログラミング言語AWK 第2版|はまち
                                                        • awk で平均を算出する方法 | 週末家庭菜園とITのブログ

                                                          awk の基本構文 awk をワンライナーで実行する場合の基本構文は以下の通りです。 引数で指定したファイル、または、標準入力で指定したデータを対象とし、パターンにマッチした行に対し、処理を実行します。パターンは省略でき省略時は全ての行が対象になります。 awk パターン { 処理 } ファイルパス コマンド | awk パターン { 処理 } 使用するサンプルデータ サンプルで使用するデータは、以下のように数値が半角スペースで区切られて並んでいます。 この数値を各行毎、各列毎に平均値を求めてみます。 [root@hostname tmp]# cat data 1 2 3 4 5 10 20 30 40 50 -10 -20 -30 -40 50 列毎に値を合算し平均を求める方法 列毎の平均値を求める際は、各列の値を合算した上で、その値をデータの行数で割ります。 行数は、awk のビルトイ

                                                          • awkで文字列にシングルクォーテーションやダブルクォーテーションを付けて出力する|サラトガ牧場

                                                            awk は特定の区切り文字で文字列を区切る時に多用しますが、区切った文字に他の文字列を連結することもあります。 通常の文字なら問題ないのですが、シングルクォーテーションだけは少し特殊です。 今回はこのようなケースを想定して、出力した文字にシングルクォーテーションを連結させてみたいと思います。 awkでファイルの特定のカラムを出力 例えば、下記の A から E までが半角スペースで区切られた文字列があった場合、A と B を SQL などのクエリ文字列に利用したい場面に遭遇したとします。 $ cat rilakkuma.txt A B C D E この場合、awk を使って A と B を抜き出すには下記のように表現します。 $ awk -F' ' '{print $1" "$2}' rilakkuma.txt A B awkでシングルクォーテーションを出力する では、実際にこの A と B

                                                              awkで文字列にシングルクォーテーションやダブルクォーテーションを付けて出力する|サラトガ牧場
                                                            • awk でヌル文字区切りで出力する POSIX 準拠の移植性がある方法 - Qiita

                                                              はじめに POSIX.1-2024 ではヌル文字区切り(正確にはヌル文字終端)が標準的な形式として認められるようになりました。 find コマンド: ヌル文字区切りで出力する -prinf0 が標準化 xargs コマンド: ヌル文字区切りで入力する -0 オプションが標準化 read コマンド: ヌル文字区切りに変更可能な -d オプションが標準化 しかし、残念なことに awk に関しては POSIX.1-2024 でヌル文字区切りを扱う方法は追加されませんでした。この記事は awk でヌル文字区切りで出力する(移植性のある)方法について解説します。 ヌル文字を出力する4つの方法 ヌル文字を出力する方法には次の4種類が考えられます。前半の 2 つは awk 自身の機能のみで実装していますが、残念ながら移植性はありません。awk 自身ではヌル文字を出力する移植性のある方法はないため、後半の

                                                                awk でヌル文字区切りで出力する POSIX 準拠の移植性がある方法 - Qiita
                                                              • 【Awkでデータ解析のすゝめ】gawk(GNU AWK)でカスタムソートを使ってみる

                                                                ビッグデータ解析の分野において、とりわけPythonとRが有名で、選ばれている要因の色々な解析のためのツールやライブラリなどが充実しているので、初学者にも敷居が低いことなどが選ばれている要因の一つになっていると思います。 ただし、高度な統計処理をしないのであれば、動作環境を選ばない圧倒的にAwkが使いやすいですし、かなり高速にデータを処理できます。 著者個人的には株式データや機械学習訓練用データのような時系列データを捌くのに日常的に利用しているので、もはやAwkによるデータ解析は手放せないものになっている程です。 複雑なデータ処理に欠かせないのが、データの順番を自由に並び替える『カスタムソート』についてのお話です。 Shellでソートをする場合、とにかくsortコマンドを使うことが多いと思いますが、実はawkでも高度なソート機能が備わっているため、わざわざsortコマンドとawkコマンドを

                                                                  【Awkでデータ解析のすゝめ】gawk(GNU AWK)でカスタムソートを使ってみる
                                                                • Gitが使える環境ならば、awkやPerlも使えるのです|/bin/shに慣れた人に贈るバッチファイルの書き方

                                                                    Gitが使える環境ならば、awkやPerlも使えるのです|/bin/shに慣れた人に贈るバッチファイルの書き方
                                                                  1