なんとな~くしあわせ?の日記

「そしてそれゆえ、知識そのものが力である」 (Nam et ipsa scientia potestas est.) 〜 フランシス・ベーコン

MinGWでUNIX気分

CSVファイルをここからお借りする
サンプルCSVファイル

ファイルを一定の長さで区切る

$ split -l 4 sample1.csv
$ ls
sample1.csv  xcj  xet  xhd  xjn  xlx  xoh  xqr  xtb  xvl  xxv
xaa          xck  xeu  xhe  xjo  xly  xoi  xqs  xtc  xvm  xxw
xab          xcl  xev  xhf  xjp  xlz  xoj  xqt  xtd  xvn  xxx
xac          xcm  xew  xhg  xjq  xma  xok  xqu  xte  xvo  xxy
xad          xcn  xex  xhh  xjr  xmb  xol  xqv  xtf  xvp  xxz
xae          xco  xey  xhi  xjs  xmc  xom  xqw  xtg  xvq  xya
xaf          xcp  xez  xhj  xjt  xmd  xon  xqx  xth  xvr  xyb
xag          xcq  xfa  xhk  xju  xme  xoo  xqy  xti  xvs  xyc
xah          xcr  xfb  xhl  xjv  xmf  xop  xqz  xtj  xvt  xyd
xai          xcs  xfc  xhm  xjw  xmg  xoq  xra  xtk  xvu  xye …以下略

grepで検索

$ grep '777' x*
xbh:173,3.7773,33.5904
xda:401,3.7772,33.9769
xfm:719,3.3446,34.2777
xfx:777,3.2245,34.2977
xgf:813,3.1777,34.3136
xgo:859,3.0777,34.3341
xle:1461,2.2777,34.5083
xnp:1777,2.0543,34.56
xos:1921,1.973,34.5777
xqb:2097,1.8777,34.5974
xrt:2313,1.7777,34.6172
xrt:2314,1.7777,34.6173
xrt:2315,1.7774,34.6172
xrt:2316,1.7775,34.6172
xrt:2317,1.7773,34.6174
xtu:2578,1.6777,34.6366
xvh:2777,1.6214,34.6473

一定の法則で書き換えて出力

$ grep '777' x* | sed -e"s/777/666/g"
xbh:173,3.6663,33.5904
xda:401,3.6662,33.9769
xfm:719,3.3446,34.2666
xfx:666,3.2245,34.2977
xgf:813,3.1666,34.3136
xgo:859,3.0666,34.3341
xle:1461,2.2666,34.5083
xnp:1666,2.0543,34.56
xos:1921,1.973,34.5666
xqb:2097,1.8666,34.5974
xrt:2313,1.6667,34.6172
xrt:2314,1.6667,34.6173
xrt:2315,1.6664,34.6172
xrt:2316,1.6665,34.6172
xrt:2317,1.6663,34.6174
xtu:2578,1.6666,34.6366
xvh:2666,1.6214,34.6473