人力検索はてな
モバイル版を表示しています。PC版はこちら
i-mobile

秀丸の質問です。
ある行から例えば、「求人情報」ではじまって、改行されながら、その会社の求人情報が,で終わっているとします。

そのほかに大量の(私の処理上)余計な文字があるのですが、

"「求人情報」から「,」"までを一括して取り出すにはどのようなことをしたら良いでしょうか。
行をまたいで処理する方法が分かりません。

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

●質問者: clinejp
●カテゴリ:コンピュータ ウェブ制作
✍キーワード:会社 求人情報 秀丸
○ 状態 :終了
└ 回答数 : 2/2件

▽最新の回答へ

1 ● rafile
●21ポイント

とりあえず、置換で、\nを""に全置換してはどうでしょうか

http://q.hatena.ne.jp/answer

◎質問者からの返答

改行を全部なくした状態にして、改行をまたがない処理にしてしまうということですね。

それですと確かになんとかなりそうですね。

ありがとうございます。


2 ●
●49ポイント ベストアンサー

秀丸の正規表現は改行の扱いがあやしいので、ちょっと難しそうです。

マクロでやれば簡単ですので、試してみてください。

[参考URL]

以下のようなマクロを作っておき、対象となるファイルを開いた状態で実行してみてください。

$new_filename = filename + "_kyujin_info.txt"; // 出力ファイル名
gofiletop; // ファイルの先頭に移動
searchdown "求人情報"; // "求人情報"という文字を検索
beginsel; // 選択開始
searchdown ","; // ","を検索
right; // 一文字右に移動
copy; // コピー ("求人情報"から",")
newfile; // 新規ファイル作成
paste; // 貼り付け
saveas $new_filename; // ファイル保存
exit; // 出力ファイルを閉じる

必要に応じてマクロを修正してみてください。

(マクロの文法などは、マクロヘルプに載っています。)

あるいはPerlなどのスクリプト言語でやる、という手もあります。

#!/usr/bin/perl

use strict;
use warnings;

my @filelist;
my $filename;
my $out_filename;
my $buf;

# 引数を、ワイルドカード展開
# ファイルならば @filelist に追加

foreach (@ARGV) {
 foreach (glob($_)) {
 if ( -f && -r $_ ) {
 push(@filelist,$_);
 }
 };
}

foreach $filename (@filelist) {
 printf("TARGET : %-40s", $filename);
 # ファイルを開く (ファイルハンドルはIN)
 open(IN,$filename) or die "Can't open specified file : $!";
 # 変数 $buf にファイルサイズ分だけ読み込む
 # つまりファイルの内容を全て $buf に読み込む
 read(IN,$buf,(-s $filename));
 # 求人情報で始まる部分から、最初の , までを
 # 正規表現で抜き出す
 if ( $buf =~ /.*?(求人情報.*?,)/ms ) {
 # 元ファイル名_kyuijin_info.txt に内容を出力
 $out_filename = "${filename}_kyujin_info.txt";
 open(OUT,">$out_filename") or die "Can't open '$out_filename' : $!";
 print OUT $1;
 close(OUT);
 printf("<OUT> %-40s\n", $out_filename);
 } else {
 print "<INF> not found.\n";
 }
 close(IN);
}

実行例は以下の通りです。

Perlがインストールされた状態で、コマンドプロンプトで下記のようにすれば、元ファイル名_kyujin_info.txt という別ファイルが作成されます。

(複数のファイルをまとめて処理します。)

perl kyujin_info_extract.pl *
◎質問者からの返答

うわー。マクロやスクリプトまで提示していただきまして、感激です。

ありがとうございます。

perlですと、fgetなどでファイルを取ってきて、そのままWEBに抜粋版が作れますね。

(著作権の問題がありますので、そこは留意しないといけないでしょうが。)

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

関連質問


●質問をもっと探す●



0.人力検索はてなトップ
8.このページを友達に紹介
9.このページの先頭へ
対応機種一覧
お問い合わせ
ヘルプ/お知らせ
ログイン
無料ユーザー登録
はてなトップ