TSVモード時の検索(grep)No.40891
mig さん 23/10/24 11:45
 
 こんにちは。migと申します。

 TSV(CSV)モード時に、以下のような検索(grep)は可能でしょうか?

 データが、

A\t001\t吾輩は
B\t002\t猫である。
C\t003\t名前はまだない。

のようにあったとして「吾輩は猫である」を検索(grep)したいのですが、tabの数は
ファイルによって違うので、検索(grep)のたびに正規表現を書くのはなかなか大変で
す。そこで同じ列を繋げて検索(grep)できるような方法があれば、便利だと思うので
すが、難しいでしょうか。

 あるいは既にあって、僕が見落としているだけかもしれません。その時はヘルプな
どの場所を教えて頂ければ幸いです。

[ ]
RE:40891 TSVモード時の検索(grep)No.40893
秀丸担当 さん 23/10/24 14:17
 
TSV/CSVで、指定の列だけの複数行に絞った検索にするという指定方法は無いです。
そういう機能を作るとしても難しそうです。

正規表現で書くと、けっこう面倒なことになると思います。
今思いついた方法としては、検索/grepダイアログは、入力欄に複数行書くことがで
きるので、複数行で書いたうえで、正規表現にするとわかりやすくできるかもしれま
せん。

例えば、該当の3行をコピーして、検索/grepダイアログにそのまま貼り付けます。
タブ文字そのものも貼り付けできるので、便宜的にCSVで表現します。

A,001,吾輩は
B,002,猫である。
C,003,名前はまだない。

正規表現で以下のように書き換えます。
・最初の行頭からの^
・中身が何でもいいセルを([^,\n]*)みたいに置き換え
・目的以降は,?(.*)で次の行まで

^([^,\n]*),([^,\n]*),(吾輩は),?(.*)
([^,\n]*),([^,\n]*),(猫である。),?(.*)
([^,\n]*),([^,\n]*),(名前はまだない。),?(.*)

もっといい書き方があるかもしれないですが、入力欄に複数行で書くことでだいぶん
見やすくなると思います。

[ ]
RE:40893 TSVモード時の検索(grep)No.40894
mig さん 23/10/24 16:04
 
早速のお返事ありがとうございます。

やはりそううまくは行きませんね(涙)。正規表現で対応してみたいと思います。

ありがとうございました。

[ ]