Tool

ちょっとしたツールを作ってみた。

fmlで作ったMLのスプールにあるメールからDate, From, Subject の情報を抜きだして一覧にするために使う。Linuxで動作する。

$ ./create.sh

スクリプトはこんな感じ。ここでは、workディレクトリやoutディレクトリをあらかじめ作ってある。

#! /bin/sh
SPOOL=”ml/spool”
count=1
while test “$count” -lt ‘2933’
do
/usr/local/j2sdk1.4.2_01/bin/java Tool01 $SPOOL/$count | nkf -m > work/$count
/usr/local/j2sdk1.4.2_01/bin/java Tool02 work/$count > out/$count
cat out/$count >> result.csv
count=`expr $count + 1`
done

Tool01 クラスは次の通り

import java.io.*;

public class Tool01 {
public static void main(String[] args) throws Exception {
if (args.length < 1) return;

File iFile = new File(args[0]);

BufferedReader r = new BufferedReader(
new InputStreamReader(
new FileInputStream(iFile)));
String line;
while ( (line = r.readLine()) != null && line.length() > 0) {
if (line.startsWith(“Date: “) ||
line.startsWith(“From: “) ) {
System.out.println(line);
} else if (line.startsWith(“Subject: “) ) {
String line2 = r.readLine();
if (line2 == null || line2.length() <= 0) {
} else {
System.out.println(line);
System.out.println(line2);
}
}
}
}
}

Tool02 クラスは次の通り

import java.io.*;

public class Tool02 {
public static void main(String[] args) throws Exception {
String SEP = “|”;
if (args.length < 1) return;
if (args.length == 2) SEP = args[1];
File iFile = new File(args[0]);

BufferedReader r = new BufferedReader(
new InputStreamReader(
new FileInputStream(iFile)));
String line;
while ( (line = r.readLine()) != null && line.length() > 0) {
if (line.startsWith(“Date: “) ||
line.startsWith(“From: “) ) {
System.out.print(line+SEP);
} else if (line.startsWith(“Subject: “) ) {
String line2 = r.readLine();
if (line2 == null || line2.length() <= 0) {
} else {
System.out.println(line+line2);
}
}
}
}
}

同じカテゴリの記事: Java