たらたらたらり。

ビンボー症で花粉症(ぼ)のお気楽日誌。身元がバレても気にしない。分かった方も暖かくスルーで☆

(覚書)16方位変換とかなんとか

2009年11月10日 12時07分03秒 | MacとかUNIXとか
「たまに使おうと思うと
 どこにいったか分からなくなってしまう小技」
の手控え

*先頭のスペースを0で埋める(awk)

awk ' { printf ( "%05s", "8:00" ) } '

0 = 0でうめる
5 = スペースは5文字分

5文字に足りない文字列のときは先頭を0で埋めてくれる

awk ' { printf ("%05s","8:00") } ' ⇒ 08:00


*変数やデータから○文字ぶんを抽出

シェル編:変数varの2文字目から5文字を抽出する設定
echo $var | cut -c2-5

awk編:一列目の2文字目から5文字を抽出する設定
awk ' { print substr($1,2,5) } '

*16方位(漢字)を数値に変換
順番は変えないこと
(「南」を先に変換してしまうと「南南東」が「884」になる)

以下はスクリプトにするとうまくいかない(日本語処理?).
まるっとコピペしてコマンドラインへ.

元データの文字コードはエディタ等でUTF-8にしておく.

perl -pe 's/'北北東'/1/g' infile | \
perl -pe 's/'東北東'/3/g' | \
perl -pe 's/'東南東'/5/g' | \
perl -pe 's/'南南東'/7/g' | \
perl -pe 's/'南南西'/9/g' | \
perl -pe 's/西南西/11/g' | \
perl -pe 's/西北西/13/g' | \
perl -pe 's/北北西/15/g' | \
perl -pe 's/'北東'/2/g' | \
perl -pe 's/'南東'/6/g' | \
perl -pe 's/'南西'/10/g' | \
perl -pe 's/北西/14/g' | \
perl -pe 's/'東'/4/g' | \
perl -pe 's/'南'/8/g' | \
perl -pe 's/西/12/g' | \
perl -pe 's/北/16/g' | \
perl -pe 's/静穏/17/g' > outfile

*16方位(アルファベット)を数値に変換
以下の順番は変えないこと

perl -pe 's/'NNE'/1/g' infile | \
perl -pe 's/'ENE'/3/g' | \
perl -pe 's/'ESE'/5/g' | \
perl -pe 's/'SSE'/7/g' | \
perl -pe 's/'SSW'/9/g' | \
perl -pe 's/WSW/11/g' | \
perl -pe 's/WNW/13/g' | \
perl -pe 's/NNW/15/g' | \
perl -pe 's/'NE'/2/g' | \
perl -pe 's/'SE'/6/g' | \
perl -pe 's/'SW'/10/g' | \
perl -pe 's/NW/14/g' | \
perl -pe 's/'E'/4/g' | \
perl -pe 's/'S'/8/g' | \
perl -pe 's/W/12/g' | \
perl -pe 's/N/16/g' | \
perl -pe 's/C/17/g' |
perl -pe 's/ //g' > outfile


最新の画像もっと見る