2007-10-01から1ヶ月間の記事一覧

他言語の書き方に学ぶ

元ネタは竹迫さんの記事です。 Part1 正しいPerl/CGIの書き方 | 日経 xTECH(クロステック) 確かに昔、ダラダラと Perl で CGI を書いていましたが、最近は凄いですね。 Python もそうですが、テストケースを書くとか、手順を Makefile でまとめるようなこ…

刑務作業でプログラム開発

別に Ruby じゃなくてもいいと思う。 今年5月、当時開所前だった日本初のPFI刑務所「美祢社会復帰促進センター」の刑務作業として、Rubyを用いたソフトウェア開発が行われるという発表があった。あれから半年、実際はといえば……。 「刑務作業でRuby」はどう…

Pocketworkstation での random 不具合

以前からなのですが、gawk を Zaurus 上でビルドすると以下のような問題がありました。 gawk 3.1.5g for Zaurus Zaurus にセルフビルドの環境が SHARP から提供されていないため、使う開発環境がバラバラになってしまっているからだと思っていたのですが、以…

Debian Sarge への Subversion 導入

Pocketworkstation は Debian Serge なので、Subversion が古いという問題がありましたが、結果的に Backports からインストールすることで回避しました。具体的には、/etc/apt/sources.list へ # Backports deb http://www.jp.backports.org/ sarge-backpor…

awk のランキング

TIOBE Index | TIOBE - The Software Quality Companyというサイトでは言語のランキングを集計してくれていて、言語の人気度合いを知ることができます。(久しぶりに見ると Lua の人気にビックリしてしまいましたが・・・最近の EDA 分野での使用も含まれてい…

simple-hatena-mode を使用

simple-hatena-mode を使用するようにしました。 最大の利点は編集を Emacs 上でできると言うことでしょうか。 あと、オフ書きする機会があると思われる Zaurus に入れておいて、後で投稿するようなこともできそうなので、Zaurus だと重宝しそうです。と思っ…

テキストのパース

Help with text file parsing comp.lang.awk ではテキストファイルのパースとなっていますが、実際には面倒な問題です。 3 // Number of blocks five lines of text we don't care about 1 23.5 2 34.2 3 45.1 4 52.4 five lines of text we don't care abou…

変わった区切りを用いる

regex guru needed $NEEDLE$, $BIG_NEEDLE$, $REALLY_BIG_NEEDLE$ のような '$' にはさまれたものを RS としたいようなのですが、特例として $NEE=\r\nDLE$, $=\nNEEDLE$ のようなものも認めるというものです。以下のような回答が出ています。 awk -v RS='$'…

2 つのファイルを扱う方法

How-to use values from 2 input files 前日の2 つのファイルの比較 - 日本 GNU AWK ユーザー会 0.2からの続きです。 $ cat input1.txt data=23 data=33 data=4と $ cat input2.txt data=23 data=32 data=3という 2 つのファイルがあった際に、値を比較する…

gsub() を式として使う

なかなかダークな世界の話題です。 GSUB regex (everything before variable) 以下のファイルの <br><br>より前を抽出するという問題ですが、完全に gsub() / sub() の評価式問題に置き換わっています。 this is a message<br><br> ignore me this is also a message a littl…

2 つのファイルの比較

Another "How-to" use 2 input files into an awk program data.log が以下のようなもので、 John=0 Anna=2data1.log が以下のようなものの場合、 value=0 value=2 FS を '=' として $2 を比較する方法を問い合わせしているようですが、ここでは data.log の…

gawk の改行問題

つーことでまとめ。これは、Windowsのようにテキストモードがあり、行末がCR LF になっているようなシステムのお話です。 gawkの改行問題 −解決編− というわけで、きむらさんが丁寧にまとめられています。 全て libc に起因していたいようです。丁寧な解説付…

getline 中の getline

awk

getline 中で getline を使うとどうなるのでしょうか。 ここでは適当な入力ファイルを使います。 $ cat getline_getline.txt 1 2 3 4 5良く私は getline を使って BEGIN ブロック中で入力を行うことがありますが、comp.lang.awk のドンこと Ed Morton は嫌っ…

PocketWorkstation の設定中

電車とかでサクっと awk プログラミングをするのに PocketWorkstation を Zaurus に入れて設定をしている最中です。 ビルド環境も含めて Debian が使えるのが最大の利点ですが、いくつか問題もありますね。 Zaurus 側でのパワーマネージメントの接点となる z…

頭の体操

画面から式を入力し、計算させて結果を画面に表示させる問題です。ほぼ正しい答えが返ってくるようになりました。 http://code.nanigac.com/forum/view/155 最近任天堂の DS のゲームとかでも簡単な計算問題を出して答えさせるというものがあったと思いつつ…

gawk だって・・・

Rubyに慣れようと、コマンドライン・ツールなどを作ってみることにしたのだが、すでにUnixに存在しているgrepなどを作っても仕方がない。そこで、指定したブログのURLからHTMLページをHTTP GETで取得し、それをパースしてATOMやRSSフィードのURLを見つけて、…

MS-DOS の gawk は良くも悪くも神

それまでは、自分にとってのプログラム言語とは「金で買うもの」だと思っていた。 それがgawkに出会ったとき「こんなものが!」的な衝撃があったのを今でも思い出せる。 http://d.hatena.ne.jp/Soryu/20070929 ブレイクさせたのは serow さんの gawk 2.11.1 …

Zaurus への Debian 環境構築

自宅では Zaurus がメインマシンなのですが (WindowsXP は VT100 端末)、Zaurus のビルド環境で構築した gawk が 'make check' で結構こけていることから、Zaurus 上に Debian 環境を構築できる http://www.pocketworkstation.org/ をインストールして環境構…

特定の文字列を含むセクションだけを抜き出す (続き)

以下からの続きです。 特定の文字列を含むセクションだけを抜き出す (続き) - 日本 GNU AWK ユーザー会 0.2 なんとなく見えているところとして、 gawk の基本動作とは異なる動作をしている Cygwin 固有の問題 or gawk 固有の問題 前者だと Cygwin の binmode…

特定の文字列を含むセクションだけを抜き出す (続き)

gawkの基本的な動作 きむらさんのこういう部分はいろいろためになります。 1. ある大きさをまとめて読んでくる 2. 読んできた中にRSにマッチする文字列があれば 1. RSにマッチした位置より前の部分を今回読み込んだレコードとして設定する 2. RSにマッチした…

特定の文字列を含むセクションだけを抜き出す

しくだい Cygwin の gawk - 日本 GNU AWK ユーザー会 0.2 特定の文字列を含むセクションだけを抜き出す (2) - 日本 GNU AWK ユーザー会 0.2 誰が \r 取り除いているのかわかんねえ… orz しくだい 他のストリーム系のものだとどうなんだろう? sed とか Perl …

gawk 3.1.5h のリリースノート翻訳

cvs 版では gawk 3.1.5i になっていますが、メンテナー Arnold Robbins によるリリースノートの翻訳を載せておきます。(あえて原文も載せています) Second beta version of gawk 3.1.6 now available Changes from 3.1.5 to 3.1.6 3.1.5 から 3.1.6 への変更…

特定の文字列を含むセクションだけを抜き出す (2)

awk

2007-10-11 - 木っ端拾いの材木流し 手元に Cygwin がないので、まず Linux でどうなるかということを調べてみます。 先に infile.txt を作っておきます。 $ cat infile.txt | od -t c 0000000 \r \n \r \n 0000004こんな感じでしょうか。 こういうテストで…

文字列マッチング

Google グループ "as" を含む行を出力するのに、 /as/ {print NR, $0} というものは出力されるが、 /^as$/ {print NR, $0} は何も表示されないという質問ですが、結果的に /^as$/ にマッチするものがないわけですが、comp.lang.awk ならではの回答が凄いです…

さまざまな処理を awk で行ってみる

Google グループ Go deh!: Wide Finder on the command lineの最初に書かれているようなパイプ処理を awk で組み込んでいった場合に、パフォーマンスがどのくらい向上するかについて試したもののようです。grep + awk + sort + uniq + sort -n + tail という…

FIELDWIDTHS について

FIELDWIDTH ってあまり使わないのですが使ってみました。 例えば固定幅で整形された出力結果にはフィールドの間に複数のスペースを置いていますが、これをawkとかで処理する場合にはechoで1つのスペースにした後で1つのスペースをディリミタとして個々のフ…

awk のフィールド数 (3)

awk

完結awkコマンド - 杉風呂2.0 - A Lifelog - 仕様どおりで良かった。良かった。

Cygwin の gawk

gawkの内部で最初にCR+LFをLFに変換してから処理しているように見える。 2007-10-11 - 木っ端拾いの材木流し 手元の Cygwin (少し古めですが) 版 gawk では RS="\r\n" でも認識していたし、RHEL3 の gawk でも問題なく動作してますね。 現象がつかめませんが…

awk で外部コマンドの結果を取り込む

awk

元ネタは Perl の話です。 Loading... awk の中ではバッククォートは使えませんが、getline による取得ができます。 #! /usr/bin/gawk -f BEGIN { while ("ls -al" | getline) { print; } } 実行結果は以下のとおり。 $ gawk -f system.awk 合計 12 drwxr-xr…

runawk と派生 (2)

runawk と派生 - 日本 GNU AWK ユーザー会 0.2からの続きです。 Google グループ Wrapper for AWK providing modules download | SourceForge.net awkfe よりも runawk を使う理由を作者が挙げています。 awkfe にはメンテナーがいない どれが最新か分からな…