YAPC::Hiroshima 2024での、awkによるWebアプリケーションの実装方法について紹介した発表の資料です。 元となった実装は https://github.com/yammerjp/awkblog にあります。 デモアプリケーションは https://awkblog.net にあります。
この記事は上記の問題の回答、およびその回答にまつわる Brian Kernighan と One True Awk、GNU awk との互換性、POSIX awk の標準規格、に関するこぼれ話を紹介する記事です。 . . . ブコメにちゃんと文章読んでるんだろうか?と疑問になるレスがあるけど、この問いに対してオリジナルのawk開発者とPOSIXとgawk開発者は全員同じ答えを出してますよ。全員同じ答えなのに、この問いに答えがないとはどういう意味なのでしょうか。そもそもPOSIXが間違ってることなんてよくある話でPOSIXが「正」とは限らない。この記事はPOSIXの解釈が間違っていたからオリジナルのawk開発者とgawk開発者の考えに従って修正したという話なんですが。それに開発者は根拠をしっかり述べてるのにそれは作者の気持ちだろっていうのは失礼な話。 . . . 答え 答えは「B. セミコロ
What's Awk Awk is a tiny programming language and a command line tool. It's particularly appropriate for log parsing on servers, mostly because Awk will operate on files, usually structured in lines of human-readable text. I say it's useful on servers because log files, dump files, or whatever text format servers end up dumping to disk will tend to grow large, and you'll have many of them per serv
Pythonをコマンドラインで使いたいのでopyというコマンドを作った Sun Sep 8 16:22:46 JST 2019 (modified: Mon Sep 9 18:33:27 JST 2019) views: 15432, keywords:opy, Python, ワンライナー, シェル芸 この記事は最終更新日が6年以上前のものです。 一つ前の記事をもうちょい真面目に書きました。 この記事の要旨 Pythonをコマンドラインで直接使うのは面倒。Pythonワンライナーは地獄。 解決のために opy というコマンドを作って公開 使い方はREADMEにあります なかなかいいので使ってみてください opyを変な呼び方しないでください!やるなよ!絶対やるなよ!! 経緯 Rubyにrbというワンライナー用のコマンド(Rubyのラッパー)があるという話を聞いたので、Pythonでも作って
November 2018 Summary: After reading The AWK Programming Language I was inspired to write an interpreter for AWK in Go. This article gives an overview of AWK, describes how GoAWK works, how I approached testing, and how I measured and improved its performance. Go to: Overview of AWK | Code walkthrough | Testing | Performance Chinese (zh) translation: 一个用Go编写的AWK解释器 Update: GoAWK now uses a bytecod
vmstat: Support for timestamps with '-t' & fix for '-wd' From now the vmstat can append a timestamp to each line in the VMSTAT and DISKSTAT mode. You can achieve that with the '-t' switch. The '-w' switch now works in the DISKSTAT mode too. vmstat: Support for timestamps with '-t' & fix for '-wd' (4fcd56bf) · Commits · procps-ng / procps · GitLab これ以降 vmstat は -t オプションでタイムスタンプを表示できるようになっている。 $ vms
(… and for system graphics, games and other interactive applications but that would make the title just a bit too long…) Many of the articles here have focused on the use of Arcan as a “desktop engine” or “display server”; even though those are rather fringe application areas which only showcases a fraction of the feature set – the display server target just happens to be part of my current focus.
12月にTwitterに流れていたPOSIX何とかという話題を読んでいたらこの記事にたどり着いた。もう3年以上前の記事だけれど、内容がとても偏っていると思う。 シェルスクリプトの書き方について解説しているウェブ上の資料は少なく、当該記事も検索に引っかかりやすい。最近の初学者はまず検索して調べることが多いが、反論が検索に引っかからないとそれが正しいと受け入れてしまう可能性が高いように思う。きちんと反論している日本語の記事が引っかからないので、あえて問題と思う点をまとめてみた。 そんなこと書いているあなたは誰? わたしはシェルスクリプトの専門家でも職業プログラマでもないけれど、シェルスクリプトを書いた量はそれなりにあると思う。環境はSunOS4, Solaris, HP-UX, IBM AIX, FreeBSD, OpenBSD, Linuxを経験していて、移植性や性能の問題がどこで発生しやす
シェルスクリプト神から教えていただいた。忘れないように書いとく (追記)聞いて、自分の記憶した内容をそのまま書いちゃったので、ちゃんとマニュアル通りか確認してなかったので反省 $ man bash 目次 xargsでfunctionを叩く 連想配列もどき 変数間接参照 なんでもかんでもawkで整形しない 文字列の末尾から数えて○文字目を△文字取り出す 番外編:やたら if [ ]; then を使わない ※Markdownで目次の書き方がわからんかった xargsでfunctionを叩く 下の例だと find xxxx | xargs cp xxxx ってかけば良さそうでイマイチだけど、もっと複雑な処理やらせたいときに。 前はこう書いてた #!/bin/bash for x in `find /var/www -name xxx` do cmd="cp -v /hoge/fuga/xxx
egzactというコマンドの詰め合わせセットを作ってみました。 → Github きっかけ zipで多重圧縮するのに、$ zip ファイル | zip | tee zip1 | zip | tee zip2 | zip | tee zip3 。。みたいなの出来ない? #シェル芸 #usptomo — ぱぴろん (@papiron) 2016年3月25日 これはあるシェル芸界隈1の方の発言です。アンチウイルスソフトの動作確認で、多重ZIPされたテストウイルスファイルが必要だったとのことです。何人かの方からアドバイスを頂いていたようですが、残念ながらシェルでサクッっとは結局できなかったご様子でした2。 この事例は、シェル上でのワンライナー(a.k.a シェル芸3)の弱点の一つを如実に表しています。文字列を切り出したり、変換したりというフィルタリングの処理は得意ですが、パターン生成が比較的苦手で
2016-04-05 - By Robert Elder Updated April 10, 2016: Removed use of unnecessary brackets as per suggestion Updated April 7, 2016: Use 'cit' instead of 'vitx', correction about identity functions vs idempotence. On Hacker News Introduction In this article, a method for inserting vim into the middle of a unix pipe is presented. This method has several caveats, but it can produce extremely terse and
ちょっとしたスクリプトを作っていた際、文字列の抜き出しを多様する処理があったので忘れないように残しておく。 2017/01/14 追記 個人的な好みで、変数へ代入をしてこなかった(スクリプト書かずにシェル芸で対応することのほうが多いため)のだが、スクリプトで書くなら変数に代入してからパラメータ展開によって文字列を抜き出す方法もあるので、念のため追記しておく。 左から◯文字 cut -c [開始文字(個数)]-[終了文字(個数)] [root@test-node ~]# # 例:左から1文字目~4文字目 [root@test-node ~]# echo abcdefghijk | cut -c 1-4 abcd [root@test-node ~]# [root@test-node ~]# # 例:左から2文字目~5文字目 [root@test-node ~]# echo abcdefghi
LinuxやUNIXで、区切り文字で句切られているファイルの、特定の列だけ値を置き換える場合は、sedかawkを用いる事で楽に行う事ができる。 sedで行う場合 sedで特定列のみ置き換える場合は、以下のようにコマンドを実行する。 sed '{s/"区切り文字"[^"区切り文字"]*}/"区切り文字"置換後の文字/置き換える列-1} 対象ファイル 例えば、「,(カンマ)」で句切られたファイルの3列目を「hige」に置き換える場合だと、以下のように記述する。 sed '{s/,[^,]*/,hige/2}' 対象ファイル [root@localhost ~]# cat /tmp/test.file aaaaa,11111,super,66666661 bbbbb,22222,wonder,66666662 ccccc,33333,dorderar,66666663 ddddd,44444,a
大きなテキストファイルを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 のプロセスをプロセススケ
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く