秀丸エディッタで指定文字列を含まない行No.34383
siniti さん 15/08/10 18:20
 
sinitiです。

いつもお世話になっています。

テキストファイルで、ある文字列(複数)を含まない行を抽出することは可能ですか?

[ ]
RE:34383 秀丸エディッタで指定文字列を含No.34384
でるもんたいいじま さん 15/08/10 18:41
 
こんばんは。秀丸ユーザの「でるもんた・いいじま」です。

> テキストファイルで、ある文字列(複数)を含まない行を抽出することは
> 可能ですか?

grep機能で可能です。仮に、除外したい文字列をA、B、Cとします。

メニューバーから「検索(S)→grepの実行(G)」のダイアログを開いて、
    検索する文字列(S): (A|B|C)
    検索するファイル(N): 対象にするファイルをワイルドカードで。
      単一ファイルならそのファイル名
    「正規表現(R)」にチェック
    「ヒットしない行(A)」にチェック

これで「OK」を押せば結果が出るはずですので、行頭のファイル名・行番号は
適宜使うなり、要らなければ置換で削除するなりすればいいでしょう。

なお、上記のように正規表現を使いますので、A・B・Cの文字列中に正規表現として
特別な意味を持つ文字がある場合は適宜 \ でエスケープしてください。

[ ]
RE:34384 秀丸エディッタで指定文字列を含No.34385
秀丸担当 さん 15/08/11 10:16
 

でるもんたいいじまさんの言われる通り、grepで抽出することができます。
行頭のファイル名と行番号が不要な場合は、さらに[検索]→[置換...]より、
検索文字列:^.+\([0-9]+\):
置換文字列:なにも無し
として正規表現をONにして全置換をして消すといいです。

または最近のバージョンでは複数選択を使って削除する方法も考えられます。
[検索]→[検索...]で検索文字列を入力し、「すべて検索」ボタンの「すべて検
索 - 複数選択」を選ぶと、検索文字列がすべて複数に分かれて選択されます。
検索文字列は最初から正規表現で「^.*WORD.*\n」としてもいいですし、正規表
現OFFで「WORD」を検索してから「行の選択」コマンドを実行してもいいです。
「行の選択」コマンドは[その他]→[キー割り当て]では「クリップボード系」、
[その他]→[メニュー編集]では「編集」メニューにあります。

[ ]
RE:34383 秀丸エディッタで指定文字列を含No.34387
山紫水明 さん 15/08/12 08:38
 
 sinitiさん,

>ある文字列(複数)を含まない行を抽出することは可能ですか?

 ご参考までに,拙作マクロ「スペース区切りで複数語GREPができるマクロ 」
もあります。
  http://hide.maruo.co.jp/lib/macro/andgrep201.html

                    山紫水明
                    SANSHISUIMEI

[ ]