正規表現実用講座1

正規表現を使用すると大きなデータも一瞬にして加工ができます。
楽しいデータ処理の雰囲気を味わってください。なおワープロではなくエディターを使いましょう。
1)準備するのはデータファイル1、エディター、実行ファイル(sed.exe)とPCです。
これだけでほとんどの処理ができます。
2)Windowsの場合エクスプローラーを開き、目的のディレクトリー内に、まずエディターで
データファイル1を準備し保存します。エディターでは100メガバイトを超える
ファイルでも簡単に展開、保存ができます。さらに ディレクトリーに sed.exe を追加します。
3)今回の例1では目的とするファイル2を得るために下記のようなプログラムを作ります。
s/^\([^\t]+\)\t\([^\t]+\)\t\([^\t]+\)\t.*/\1\t\3\t\2/
上記のプログラムに名前をつけてファイルに保存します。(例:sample1.sed)
エディターで sed -f sample1.sed ファイル1 > ファイル2 を入力して
sample1.bat のファイル名で保存します。
4)同じディレクトリー内に ファイル1、sed.exe、sample1.sed、sample1.bat のファイルを
確認したら sample1.bat をクリックして実行します。 
これだけで目的とするデータファイル2のできあがりです。
処理時間は小さいファイルは数秒、大きいファイルでも数分でできるでしょう。
慣れたら簡単だし、カスタマイズしたらコンピューターが楽しくなりますよ。
例1.メニューにある日本語と干渉する多言語コード表について[日本]と[西欧]の順番を逆にして
[東欧]以下を削除したい。
CPコード=20 >>	[日本]0020= 	[西欧]0020= 	[東欧]0020= 	[キリル]0020= 	[ギリシャ]0020= 	[トルコ]0020= 	[ヘブライ]0020= 	[アラビア]0020= 	[バルト]0020= 	[ベトナム]0020= 	[タイ]0020= 
CPコード=21 >>	[日本]0021=!	[西欧]0021=!	[東欧]0021=!	[キリル]0021=!	[ギリシャ]0021=!	[トルコ]0021=!	[ヘブライ]0021=!	[アラビア]0021=!	[バルト]0021=!	[ベトナム]0021=!	[タイ]0021=!
CPコード=22 >>	[日本]0022="	[西欧]0022="	[東欧]0022="	[キリル]0022="	[ギリシャ]0022="	[トルコ]0022="	[ヘブライ]0022="	[アラビア]0022="	[バルト]0022="	[ベトナム]0022="	[タイ]0022="
[以下略]
プログラム
s/^\([^\t]+\)\t\([^\t]+\)\t\([^\t]+\)\t.*/\1\t\3\t\2/
以上
上記の一行プログラムを実行すると以下の表が瞬時に作成できます。
CPコード=20 >>	[西欧]0020= 	[日本]0020= 
CPコード=21 >>	[西欧]0021=!	[日本]0021=!
CPコード=22 >>	[西欧]0022="	[日本]0022="
CPコード=23 >>	[西欧]0023=#	[日本]0023=#
CPコード=24 >>	[西欧]0024=$	[日本]0024=$
CPコード=25 >>	[西欧]0025=%	[日本]0025=%
CPコード=26 >>	[西欧]0026=&	[日本]0026=&
CPコード=27 >>	[西欧]0027='	[日本]0027='
CPコード=28 >>	[西欧]0028=(	[日本]0028=(
CPコード=29 >>	[西欧]0029=)	[日本]0029=)
CPコード=2A >>	[西欧]002A=*	[日本]002A=*
CPコード=2B >>	[西欧]002B=+	[日本]002B=+
CPコード=2C >>	[西欧]002C=,	[日本]002C=,
CPコード=2D >>	[西欧]002D=-	[日本]002D=-
CPコード=2E >>	[西欧]002E=.	[日本]002E=.
CPコード=2F >>	[西欧]002F=/	[日本]002F=/
CPコード=30 >>	[西欧]0030=0	[日本]0030=0
CPコード=31 >>	[西欧]0031=1	[日本]0031=1
CPコード=32 >>	[西欧]0032=2	[日本]0032=2
CPコード=33 >>	[西欧]0033=3	[日本]0033=3
CPコード=34 >>	[西欧]0034=4	[日本]0034=4
CPコード=35 >>	[西欧]0035=5	[日本]0035=5
CPコード=36 >>	[西欧]0036=6	[日本]0036=6
CPコード=37 >>	[西欧]0037=7	[日本]0037=7
CPコード=38 >>	[西欧]0038=8	[日本]0038=8
CPコード=39 >>	[西欧]0039=9	[日本]0039=9
CPコード=3A >>	[西欧]003A=:	[日本]003A=:
CPコード=3B >>	[西欧]003B=;	[日本]003B=;
CPコード=3C >>	[西欧]003C=<	[日本]003C=<
CPコード=3D >>	[西欧]003D==	[日本]003D==
CPコード=3E >>	[西欧]003E=>	[日本]003E=>
CPコード=3F >>	[西欧]003F=?	[日本]003F=?
CPコード=40 >>	[西欧]0040=@	[日本]0040=@
CPコード=41 >>	[西欧]0041=A	[日本]0041=A
CPコード=42 >>	[西欧]0042=B	[日本]0042=B
CPコード=43 >>	[西欧]0043=C	[日本]0043=C
CPコード=44 >>	[西欧]0044=D	[日本]0044=D
CPコード=45 >>	[西欧]0045=E	[日本]0045=E
CPコード=46 >>	[西欧]0046=F	[日本]0046=F
CPコード=47 >>	[西欧]0047=G	[日本]0047=G
CPコード=48 >>	[西欧]0048=H	[日本]0048=H
CPコード=49 >>	[西欧]0049=I	[日本]0049=I
CPコード=4A >>	[西欧]004A=J	[日本]004A=J
CPコード=4B >>	[西欧]004B=K	[日本]004B=K
CPコード=4C >>	[西欧]004C=L	[日本]004C=L
CPコード=4D >>	[西欧]004D=M	[日本]004D=M
CPコード=4E >>	[西欧]004E=N	[日本]004E=N
CPコード=4F >>	[西欧]004F=O	[日本]004F=O
CPコード=50 >>	[西欧]0050=P	[日本]0050=P
CPコード=51 >>	[西欧]0051=Q	[日本]0051=Q
CPコード=52 >>	[西欧]0052=R	[日本]0052=R
CPコード=53 >>	[西欧]0053=S	[日本]0053=S
CPコード=54 >>	[西欧]0054=T	[日本]0054=T
CPコード=55 >>	[西欧]0055=U	[日本]0055=U
CPコード=56 >>	[西欧]0056=V	[日本]0056=V
CPコード=57 >>	[西欧]0057=W	[日本]0057=W
CPコード=58 >>	[西欧]0058=X	[日本]0058=X
CPコード=59 >>	[西欧]0059=Y	[日本]0059=Y
CPコード=5A >>	[西欧]005A=Z	[日本]005A=Z
CPコード=5B >>	[西欧]005B=[	[日本]005B=[
CPコード=5C >>	[西欧]005C=\	[日本]005C=\
CPコード=5D >>	[西欧]005D=]	[日本]005D=]
CPコード=5E >>	[西欧]005E=^	[日本]005E=^
CPコード=5F >>	[西欧]005F=_	[日本]005F=_
CPコード=60 >>	[西欧]0060=`	[日本]0060=`
CPコード=61 >>	[西欧]0061=a	[日本]0061=a
CPコード=62 >>	[西欧]0062=b	[日本]0062=b
CPコード=63 >>	[西欧]0063=c	[日本]0063=c
CPコード=64 >>	[西欧]0064=d	[日本]0064=d
CPコード=65 >>	[西欧]0065=e	[日本]0065=e
CPコード=66 >>	[西欧]0066=f	[日本]0066=f
CPコード=67 >>	[西欧]0067=g	[日本]0067=g
CPコード=68 >>	[西欧]0068=h	[日本]0068=h
CPコード=69 >>	[西欧]0069=i	[日本]0069=i
CPコード=6A >>	[西欧]006A=j	[日本]006A=j
CPコード=6B >>	[西欧]006B=k	[日本]006B=k
CPコード=6C >>	[西欧]006C=l	[日本]006C=l
CPコード=6D >>	[西欧]006D=m	[日本]006D=m
CPコード=6E >>	[西欧]006E=n	[日本]006E=n
CPコード=6F >>	[西欧]006F=o	[日本]006F=o
CPコード=70 >>	[西欧]0070=p	[日本]0070=p
CPコード=71 >>	[西欧]0071=q	[日本]0071=q
CPコード=72 >>	[西欧]0072=r	[日本]0072=r
CPコード=73 >>	[西欧]0073=s	[日本]0073=s
CPコード=74 >>	[西欧]0074=t	[日本]0074=t
CPコード=75 >>	[西欧]0075=u	[日本]0075=u
CPコード=76 >>	[西欧]0076=v	[日本]0076=v
CPコード=77 >>	[西欧]0077=w	[日本]0077=w
CPコード=78 >>	[西欧]0078=x	[日本]0078=x
CPコード=79 >>	[西欧]0079=y	[日本]0079=y
CPコード=7A >>	[西欧]007A=z	[日本]007A=z
CPコード=7B >>	[西欧]007B={	[日本]007B={
CPコード=7C >>	[西欧]007C=|	[日本]007C=|
CPコード=7D >>	[西欧]007D=}	[日本]007D=}
CPコード=7E >>	[西欧]007E=~	[日本]007E=~
CPコード=7F >>	[西欧]007F=	[日本]007F=
CPコード=A1 >>	[西欧]00A1=¡	[日本]FF61=。
CPコード=A2 >>	[西欧]00A2=¢	[日本]FF62=「
CPコード=A3 >>	[西欧]00A3=£	[日本]FF63=」
CPコード=A4 >>	[西欧]00A4=¤	[日本]FF64=、
CPコード=A5 >>	[西欧]00A5=¥	[日本]FF65=・
CPコード=A6 >>	[西欧]00A6=¦	[日本]FF66=ヲ
CPコード=A7 >>	[西欧]00A7=§	[日本]FF67=ァ
CPコード=A8 >>	[西欧]00A8=¨	[日本]FF68=ィ
CPコード=A9 >>	[西欧]00A9=©	[日本]FF69=ゥ
CPコード=AA >>	[西欧]00AA=ª	[日本]FF6A=ェ
CPコード=AB >>	[西欧]00AB=«	[日本]FF6B=ォ
CPコード=AC >>	[西欧]00AC=¬	[日本]FF6C=ャ
CPコード=AD >>	[西欧]00AD=­	[日本]FF6D=ュ
CPコード=AE >>	[西欧]00AE=®	[日本]FF6E=ョ
CPコード=AF >>	[西欧]00AF=¯	[日本]FF6F=ッ
CPコード=B0 >>	[西欧]00B0=°	[日本]FF70=ー
CPコード=B1 >>	[西欧]00B1=±	[日本]FF71=ア
CPコード=B2 >>	[西欧]00B2=²	[日本]FF72=イ
CPコード=B3 >>	[西欧]00B3=³	[日本]FF73=ウ
CPコード=B4 >>	[西欧]00B4=´	[日本]FF74=エ
CPコード=B5 >>	[西欧]00B5=µ	[日本]FF75=オ
CPコード=B6 >>	[西欧]00B6=¶	[日本]FF76=カ
CPコード=B7 >>	[西欧]00B7=·	[日本]FF77=キ
CPコード=B8 >>	[西欧]00B8=¸	[日本]FF78=ク
CPコード=B9 >>	[西欧]00B9=¹	[日本]FF79=ケ
CPコード=BA >>	[西欧]00BA=º	[日本]FF7A=コ
CPコード=BB >>	[西欧]00BB=»	[日本]FF7B=サ
CPコード=BC >>	[西欧]00BC=¼	[日本]FF7C=シ
CPコード=BD >>	[西欧]00BD=½	[日本]FF7D=ス
CPコード=BE >>	[西欧]00BE=¾	[日本]FF7E=セ
CPコード=BF >>	[西欧]00BF=¿	[日本]FF7F=ソ
CPコード=C0 >>	[西欧]00C0=À	[日本]FF80=タ
CPコード=C1 >>	[西欧]00C1=Á	[日本]FF81=チ
CPコード=C2 >>	[西欧]00C2=Â	[日本]FF82=ツ
CPコード=C3 >>	[西欧]00C3=Ã	[日本]FF83=テ
CPコード=C4 >>	[西欧]00C4=Ä	[日本]FF84=ト
CPコード=C5 >>	[西欧]00C5=Å	[日本]FF85=ナ
CPコード=C6 >>	[西欧]00C6=Æ	[日本]FF86=ニ
CPコード=C7 >>	[西欧]00C7=Ç	[日本]FF87=ヌ
CPコード=C8 >>	[西欧]00C8=È	[日本]FF88=ネ
CPコード=C9 >>	[西欧]00C9=É	[日本]FF89=ノ
CPコード=CA >>	[西欧]00CA=Ê	[日本]FF8A=ハ
CPコード=CB >>	[西欧]00CB=Ë	[日本]FF8B=ヒ
CPコード=CC >>	[西欧]00CC=Ì	[日本]FF8C=フ
CPコード=CD >>	[西欧]00CD=Í	[日本]FF8D=ヘ
CPコード=CE >>	[西欧]00CE=Î	[日本]FF8E=ホ
CPコード=CF >>	[西欧]00CF=Ï	[日本]FF8F=マ
CPコード=D0 >>	[西欧]00D0=Ð	[日本]FF90=ミ
CPコード=D1 >>	[西欧]00D1=Ñ	[日本]FF91=ム
CPコード=D2 >>	[西欧]00D2=Ò	[日本]FF92=メ
CPコード=D3 >>	[西欧]00D3=Ó	[日本]FF93=モ
CPコード=D4 >>	[西欧]00D4=Ô	[日本]FF94=ヤ
CPコード=D5 >>	[西欧]00D5=Õ	[日本]FF95=ユ
CPコード=D6 >>	[西欧]00D6=Ö	[日本]FF96=ヨ
CPコード=D7 >>	[西欧]00D7=×	[日本]FF97=ラ
CPコード=D8 >>	[西欧]00D8=Ø	[日本]FF98=リ
CPコード=D9 >>	[西欧]00D9=Ù	[日本]FF99=ル
CPコード=DA >>	[西欧]00DA=Ú	[日本]FF9A=レ
CPコード=DB >>	[西欧]00DB=Û	[日本]FF9B=ロ
CPコード=DC >>	[西欧]00DC=Ü	[日本]FF9C=ワ
CPコード=DD >>	[西欧]00DD=Ý	[日本]FF9D=ン
CPコード=DE >>	[西欧]00DE=Þ	[日本]FF9E=゙
CPコード=DF >>	[西欧]00DF=ß	[日本]FF9F=゚



例2.メニューにあるユニコード比較表1のなかから【・・】だけを順番を
  変えないで残しメニューにする。
【基本ラテン】
Uni	JIS	SJIS	EUC	=  文字
0020	20	20	20	=   
0021	21	21	21	=  !
0022	22	22	22	=  "
---  略  ---
【ラテン-1補助】
Uni	JIS	SJIS	EUC	=  文字
00A1	1-2242	----	8FA2C2	=  ¡
00A2	0-2171	8191	A1F1	=  ¢
00A3	0-2172	8192	A1F2	=  £
00A4	1-2270	----	8FA2F0	=  ¤
00A5	5C	5C	5C	=  ¥
---  略  ---
【ラテン拡張A】
Uni	JIS	SJIS	EUC	=  文字
0100	1-2A27	----	8FAAA7	=  Ā
0101	1-2B27	----	8FABA7	=  ā
0102	1-2A25	----	8FAAA5	=  Ă
0103	1-2B25	----	8FABA5	=  ă
---  略  ---
【ラテン拡張B】
Uni	JIS	SJIS	EUC	=  文字
01CD	1-2A26	----	8FAAA6	=  Ǎ
01CE	1-2B26	----	8FABA6	=  ǎ
01CF	1-2A43	----	8FAAC3	=  Ǐ
01D0	1-2B43	----	8FABC3	=  ǐ
---  略  ---
プログラム
s/^[^【].*\n// 又は s/^[^【]+\n//
以上
上記の一行プログラムを実行すると以下のリストがすばやく作成できます。
【基本ラテン】
【ラテン-1補助】
【ラテン拡張A】
【ラテン拡張B】
【IPA拡張】
【スペース調整文字】
【結合分音記号】
【基本ギリシャ】
【キリル】
【アルメニア】
【ヘビライ(基本および拡張)】
【アラビア拡張】
【デーヴァナーガリー】
【ベンガル】
【グルムキー】
【グジャラーティ】
【オリヤー】
【タミル】
【テルグ】
【カンナダ】
【マラヤーラム】
【タイ】
【ラオ】
【チベット】
【グルジア】
【ハングル字母】
【ラテン拡張追加】
【ギリシャ拡張】
【一般句読点】
【上付き・下付きの文字】
【通貨記号】
【記号用結合分音記号】
【文字様記号】
【数字の形】
【矢印】
【数学記号】
【その他の技術記号】
【その他の技術用記号】
【制御機能用記号】
【OCR】
【囲み英数字】
【罫線素片】
【ブロック要素】
【幾何学模様】
【その他の記号】
【装飾記号】
【CJK用の記号および分音記号】
【平仮名】
【片仮名】
【注音字母】
【ハングル互換用字母】
【漢文】
【囲みCJK文字&月】
【CJK互換文字】
【アルファベット表示形】
【アラビア表示形A】
【結合半角記号】
【CJK互換形】
【小字形】
【アラビア表示形B】
【半角形、全角形】
【特殊文字】