[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

(DTPtechNote:502) grep



せうぞぉさんが仰っていたgrepです。

shift-jis,改行コードCRのテキストから抜き書きするには、
「表現」のたぐいで引っかからないように、nkf -eでeuc-jpに変換。
cat aaa.csv|nkf -e >bbb.csv
nkfは改行コードは変えてくれないので、
cat bbb.csv|tr '\r' '\n' >ccc.csv
これでgrepでフツーに使えるeuc-jp、改行コードLFのテキストができました。
grepは改行コードがcrのままだとダメです。っていうか、crが行の区切り
にならないので、マッチするところがあるとそこから後ろが全部マッチした
行として扱われるので何の役にも立ちませぬ。
ここまで来ればあとはフツーに

cat ccc.csv|grep -e PATTERN >kekka.txt

で抜き書きできまつね。 
で、これをshift-jis,CRのテキストに戻して出来上がり。
なので、
ファイル・aaa.csvからPATTERNがある行をファイル・kekka.txtに抜き書きするのは、

cat aaa.csv | nkf -e |tr '\r' '\n' |grep -e PATTERN |tr '\n' '\r'| nkf -s >kekka.txt

でいいことになりますけど……。
OSXでやるとめんどくさいので、普通にターミナルが使えるOSでやったほうが
楽だと思います。
もしくは、初めからPerlでやるほうがいいような……。