###前提・実現したいこと
お世話になります。
cshで以下のようなバッチを作成したいと考えております。
datファイル(sjis)を読み込み、文字化けをしていたら適当な文字に変更するといったものです。
例)
亜(文字コード 0xff 0xff 0x889f)
↓
●●亜(文字コード 0x819c 0x819c 0x889f)
また、同時に特定列のみ変換対象としたいのですがどうしたらよいでしょうか?
例)
111,aaaa,あああ,****
222,iiii,いいい,++++
333,uuuu,亜,----
の場合だったら3列目のみ変換対象とし、他の列は変換対象外としたいです。
###該当のソースコード
csh
1perl -pi -e 's/[^\x88\x9F-\xEA\xA4\xFA\x40-\xFC\x4B\x01-\x7E\xA1-\xDF\x81\x40-\x84\xBE]/●/g' aaaaa.dat
###試したこと
\x88\x9F-\xEA\xA4 第一水準 第二水準
\xFA\x40-\xFC\x4B IBM拡張文字
\x01-\x7E 半角ローマ字等
\xA1-\xDF 半角カナ等
\x81\x40-\x84\xBE 全角記号
上記ソースの正規表現で
一応変換はできたのですが、この正規表現は正しいのでしょうか?
また、特定列のみ対象とすることに関しては、
perl -F, -lane 'print "$F[3]\n"' aaaaa.dat > iiiii.dat や
cat aaaaa.dat | cut -b9-14 > iiiii.dat で
列の抽出をすることまではできたのですが、変換対象にするのかまではわかりませんでした。
(ワンライナーとしてperlコマンドを使用しました)
###補足情報(言語/FW/ツール等のバージョンなど)
OS:SunOS 5.10
cshでのみ作成可能
以上です。宜しくお願い致します。
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2017/09/14 07:46
2017/09/14 08:00