秀丸マクロの使い方No.18132
h_0714 さん 04/10/15 16:20
 
はじめまして。

秀丸初心者です。

秀丸の操作で、オートフィルタのような機能はありますか。 
特定の文字、数値を含んだ行全部複数対象に抽出→コピー貼り付け等可能でしょうか。

下記で、099988888WYを含む行全部と他の行とに分割したいのですが。

01 1116381537          20040525 040550 659246 474948 000000000011749 0000000
00559 000000000011190 005 01 02 01 001 230347301W1    
01 1116381537          20040525 040550 659253 474955 000000000004189 0000000
00199 000000000003990 005 01 02 01 001 230330001BL    
01 1116381537          20040525 040551 659256 474958 000000000003139 0000000
00149 000000000002990 005 01 02 01 001 230329403CL    
01 1116381537          20040525 040551 659261 474963 000000000002498 0000000
00118 000000000002380 005 01 02 01 001 230328912WM    
01 1116381537          20040525 040551 659267 474969 000000000002089 0000000
00099 000000000001990 005 01 02 01 001 230327502WM    
01 1116381537          20040525 040551 659272 474973 000000000006289 0000000
00299 000000000005990 005 01 02 01 001 230311901GL    
01 1116381537          20040525 040551 659276 474977 000000000003139 0000000
00149 000000000002990 005 01 02 01 001 230313402BM    
01 1116381537          20040525 040551 659280 474981 000000000002089 0000000
00099 000000000001990 005 01 02 01 001 230313201GM    
01 1119527394       20030911 112102 237291 889305 000000000011854 0000000005
64 000000000011290 005 01 02 01 001 211421403A19    
01 1119527394       20030911 113208 237291 892701 000000000000724 0000000000
34 000000000000690 005 01 02 01 001 969810002WY    
01 1119527394       20031120 072833 047847 649664 000000000000210 0000000000
10 000000000000200 005 01 02 01 001 099988888WY    
01 1137011048        20030908 180637 083687 368409 000000000004598 000000000
218 000000000004380 005 01 01 01 001 211448702C1    
01 1137011048        20031120 072834 047826 649642 000000000000210 000000000
010 000000000000200 005 01 02 01 001 099988888WY    
01 4022156565        20030907 162722 025079 164545 000000000002824 000000000
134 000000000002690 005 01 01 01 001 210917304W73

よろしくお願い致します。

[ ]
RE:18132 秀丸マクロの使い方No.18136
秀丸担当 さん 04/10/15 17:12
 

>秀丸の操作で、オートフィルタのような機能はありますか。 
>特定の文字、数値を含んだ行全部複数対象に抽出→コピー貼り付け等可能でしょう
>か。

grepで、検索するファイルを「(現在の内容)」とすれば、現在開いている内容に
対を検索して、ヒットした行を一覧に出すことができます。
ヒットしない行を抽出することは難しいです。
また、行番号なども一緒に出力されてしまいます。

[その他]→[プログラム実行]で、フィルタに対応したプログラムを使うこともで
きます。
今回のケースの場合、Windowsに付属のfindコマンドでできます。

ヒットした行を抽出の場合
find.exe "099988888WY" <con >con

ヒットしない行を抽出の場合
find.exe /V "099988888WY" <con >con

WindowsXP/2000だとできましたが、Windows98/Meの場合、なぜかできませんでし
た。
標準入力の代わりに%fでファイル名を指定するとできました。
%fの場合は無題のファイルではできません。

find.exe "099988888WY" %f >con

[ ]
RE:18136 秀丸マクロの使い方No.18137
h_0714 さん 04/10/15 17:44
 
>grepで、検索するファイルを「(現在の内容)」とすれば、現在開いている内容に
>対を検索して、ヒットした行を一覧に出すことができます。
>ヒットしない行を抽出することは難しいです。
>また、行番号なども一緒に出力されてしまいます。
>
>[その他]→[プログラム実行]で、フィルタに対応したプログラムを使うこともで
>きます。
>今回のケースの場合、Windowsに付属のfindコマンドでできます。
>
>ヒットした行を抽出の場合
>find.exe "099988888WY" <con >con
>
>ヒットしない行を抽出の場合
>find.exe /V "099988888WY" <con >con
>
>WindowsXP/2000だとできましたが、Windows98/Meの場合、なぜかできませんでし
>た。
>標準入力の代わりに%fでファイル名を指定するとできました。
>%fの場合は無題のファイルではできません。
>
>find.exe "099988888WY" %f >con

お世話になります。
ありがとうございました!

すっごく便利です。
感動しました、、、

[ ]
RE:18136 秀丸マクロの使い方No.18139
三月 さん 04/10/15 20:02
 
>ヒットしない行を抽出することは難しいです。
ヒットする行を削除すれば残りがヒットしないって行ってことで
置換で削除してやれば良いのでは?

検索文字列「^.*099988888WY.*\n」
置換文字列「」
正規表現ON
てな感じで。

[ ]