組体裁がバラバラでプロとしては組み直してあげたい時がある。
ワードをテキストに変換してあげると(_は空白文字)
会 長 山田 太郎 丸の内1-5-5 222-2222 副 会 長 井上 用水 丸の内3−3−3 222−1111
などバラバラで体裁を整えるために余分なスペースが埋め込んである。
印刷会社ではイラレを使って名簿作成している方が大変多いので、このようなテキストでは困る。
本来なら、
会長 副会長
のように役職は役職だけ、名前は名前だけの方が、体裁を整えるに簡単だからだ。
入稿データを、イラレで処理しやすくするためにはどうしたらよいか?
このような時には、頭からの文字数で切り分ければ良い。
awk '{str=substr($0,1,15); print str}' meibo.txt > yakusyoku.txt
UTF8の場合、日本語は3バイトであるから、会___長の長さで切り分けるときには、上のように$0,1,15
会___長は先頭の1バイトから長さは5文字だから5x3=15バイト、すなわち1,15となる
名前の場合は
awk '{str=substr($0,22,15); print str}' meibo.txt > namae.txt
のように先頭から22バイト目 15バイト取得 のようにする。
因みにデータがShift_Jisの場合1文字は2バイトです。
多くはWINDOWSデータですので、WINマシンでこの操作をすれば良いでしょう。因みに日本語はShiftJISコードですから1文字2バイトで計算してあげます。
UFT8文字コードの場合、1文字のバイト数が複雑なので、Shift-JISコードに変換しWINで処理すると良いでしょう
因みにwindows gawkはココからダウンロードしwindows-system32に入れておきましょう。
私の環境は未だにwinXP、zipをダウンロードして解凍しようとするとWinZipを買えとアナウンスされる。
仕方なくMacでダウンロードし解凍する。
gawk.exeをパスの通ったsystem32に入れると正常に起動してくれた。
Windowには、その他にsed grepのようなツールも入っていないようだ。お使いの方はGNUからダウンロードしなくてはいけない。