要望 grepの行表示No.13456
MLq さん 02/11/20 16:44
 
grepを使って、一定の形式で出力されたファイルの中から
特定のキーワード(下記の例では"名  称")の行を切り出し、
特定のカラムを箱選択で切り出したいと思っています。
下記例では"名  称"の後3カラム目以降の"画像表示装置"、
"電子カメラ"などです。

   tmp.txt(9): 名  称  画像情報再生装置
   tmp.txt(40): 名  称  電子カメラ
   tmp.txt(97): 名  称  画像処理方法
   tmp.txt(124): 名  称  フアクシミリ装置
   tmp.txt(990): 名  称  画像変換装置
   tmp.txt(1021): 名  称  文字原稿の傾き検出方法
   tmp.txt(1048): 名  称  フアクシミリ装置

grepでは上記のように、行表示が1,2,3,4カラムと順次増えていますが
たとえば下記のように5桁ぐらいの決め撃ちにすることはできないしょうか?

   tmp.txt(    9): 名  称  画像情報再生装置
   tmp.txt(   40): 名  称  電子カメラ
   tmp.txt(   97): 名  称  画像処理方法
                     :

ご検討いただければ幸いです。

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

[ ]
RE:13456 要望 grepの行表示No.13462
秀丸担当 さん 02/11/20 18:17
 
>grepを使って、一定の形式で出力されたファイルの中から
>特定のキーワード(下記の例では"名 称")の行を切り出し、
>特定のカラムを箱選択で切り出したいと思っています。
>下記例では"名 称"の後3カラム目以降の"画像表示装置"、

grep結果のファイル名部分をするのであれば、置換の応用でできます。
検索→置換のダイアログで、検索文字列を「^[^ ]*\):」、置換文字
列を何もなしにし、正規表現をチェックして全置換をすることででき
ます。

桁位置を揃えたい場合は置換の応用ではちょっとむずかしいです。
タブで揃えるのなら上の例で置換文字列を「\0\t」とすることででき
ますが、ファイル名の長さによってタブ一個ぶんずれてしまって、う
まく揃えられないかもしれません。

[ ]
RE:13462 要望 grepの行表示No.13463
MLq さん 02/11/20 19:38
 
>grep結果のファイル名部分をするのであれば、置換の応用でできます。
>検索→置換のダイアログで、検索文字列を「^[^ ]*\):」、置換文字
>列を何もなしにし、正規表現をチェックして全置換をすることででき
>ます。
>
>桁位置を揃えたい場合は置換の応用ではちょっとむずかしいです。
>タブで揃えるのなら上の例で置換文字列を「\0\t」とすることででき
>ますが、ファイル名の長さによってタブ一個ぶんずれてしまって、う
>まく揃えられないかもしれません。

早速のご対応どうもありがとうございます。

とりあえず、私のやりたいことは上の方法でフィル名を消せば
達成できました。
#正規表現はよく理解していませんが ^^;

でも、grep結果が段々表示になっているのは、何となく美しく
ないのですが、あえて段々にしているのは、何か深い理由が
あるのでしょうか。。。

[ ]
RE:13463 要望 grepの行表示No.13470
秀丸担当 さん 02/11/21 18:32
 
>でも、grep結果が段々表示になっているのは、何となく美しく
>ないのですが、あえて段々にしているのは、何か深い理由が
>あるのでしょうか。。。

特に深い理由はないです。
grep結果は複数のファイルから検索することが普通なので、
ファイル名の長さはばらばらで、美しくないのが普通かと。

[ ]