Diary

Diary

日々学んだことをアウトプットする場として初めてみました

Linux-awk

awk 1 とは何か

awk 1という表現についてメモしておきます。 awk 大前提として、awkの基本パターンは『(マッチ)パターン+アクション』です。 そして awk では以下のように記述します # awk 'pattern {action}' $ echo 'hoge fuga pien' | awk '/fuga/ {print $0}' hoge f…

ワンライナーで棒グラフを作る

ダウンロード時などに、進捗を表すグラフをターミナルでも見かけることが多く、「自分でもグラフっぽいの作れるんじゃないか!」と思ったので作ってみました 棒グラフを作ってみた 具体的には、二列のデータ(二列目は数値)から以下のようなグラフを作るこ…

分数の足し算引き算を AWK で

前回の記事で、AWK を使ってどのように分数の約分ができるのか、ということをやりました。 今回は、引き続き足し算と引き算をさせてみようと思います。 前回のまとめ 以下のようにして約分を行いました。詳しい方針は過去記事をご覧ください $ echo 6/8 | tr…

AWK で約分をやってみた

[目次] AWK で約分 (おまけ)ruby, python なら一瞬 おわりに AWK で約分 方針: 素因数分解して、分子の素因数は +1, 分母は -1 とカウントして、AWK の連想配列に突っ込む 最終結果として、a[] の値がプラスのものはその数だけ分子に、マイナスのものは分…

awk で四捨五入を行う

AWK は非常に強力な言語なのですが、残念なことに標準の関数として四捨五入を行うことができません。 そこで今回、任意の桁に対して四捨五入を行う方法をメモしておこうと思います。 小数点以下で四捨五入する 任意の桁で四捨五入する おわりに 小数点以下で…

awk で小数点以下を含む計算するときの注意

awk で小数点以下を含む計算するときの注意 少数を含む計算の注意点 小数点以下が有限の桁で記述できないような少数は、ある程度の桁数で近似を行うしかないため、以下のような(一見)不思議な現象が起きます。 $ awk 'BEGIN {print int(70.21 * 100)}' 702…

awk で uniq を実行する

awk の連想配列の機能を使って、(シンプルな)uniqコマンドと同様の機能を実装できることが分かったので紹介したいと思います。 uniq コマンドとは awk による uniq の実装 連想配列? 使い方 おわりに uniq コマンドとは awk の前にまず、uniqコマンドの復…