在一个文本文件中,例如:
MMON started with pid=10, OS id=5723
Tue Mar 3 18:15:49 2009
ALTER SYSTEM enable restricted session;
Tue Mar 3 18:15:49 2009
alter database "oracle" open resetlogs
MMNL started with pid=11, OS id=5725
Tue Mar 3 18:15:50 2009
RESETLOGS after incomplete recovery UNTIL CHANGE 446074
Tue Mar 3 18:15:50 2009
Errors in file /opt/oracle/admin/oracle/udump/oracle_ora_5721.trc:
ORA-00313: open failed for members of log group 1 of thread 1
ORA-00312: online log 1 thread 1: '/opt/oracle/oradata/oracle/redo01.log'
ORA-27037: unable to obtain file status
Linux Error: 2: No such file or directory
Additional information: 3
Tue Mar 3 18:15:52 2009
Errors in file /opt/oracle/admin/oracle/udump/oracle_ora_5721.trc:
ORA-00313: open failed for members of log group 2 of thread 1
ORA-00312: online log 2 thread 1: '/opt/oracle/oradata/oracle/redo02.log'
ORA-27037: unable to obtain file status
Linux Error: 2: No such file or directory
Additional information: 3
Tue Mar 3 18:15:53 2009
Errors in file /opt/oracle/admin/oracle/udump/oracle_ora_5721.trc:
ORA-00313: open failed for members of log group 3 of thread 1
ORA-00312: online log 3 thread 1: '/opt/oracle/oradata/oracle/redo03.log'
ORA-27037: unable to obtain file status
Linux Error: 2: No such file or directory
Additional information: 3
Tue Mar 3 18:15:55 2009
Setting recovery target incarnation to 2
Tue Mar 3 18:15:55 2009
Assigning activation ID 1553627283 (0x5c9a7893)
Thread 1 opened at log sequence 1
Current log# 3 seq# 1 mem# 0: /opt/oracle/oradata/oracle/redo03.log
Successful open of redo thread 1
Tue Mar 3 18:15:55 2009
MTTR advisory is disabled because FAST_START_MTTR_TARGET is not set
Tue Mar 3 18:15:55 2009
SMON: enabling cache recovery
Tue Mar 3 18:15:59 2009
Successfully onlined Undo Tablespace 1.要求检索ora-的内容,并将此关键字的时间点提取出来Tue Mar 3 18:15:50 2009
生成一个新的文本文件
MMON started with pid=10, OS id=5723
Tue Mar 3 18:15:49 2009
ALTER SYSTEM enable restricted session;
Tue Mar 3 18:15:49 2009
alter database "oracle" open resetlogs
MMNL started with pid=11, OS id=5725
Tue Mar 3 18:15:50 2009
RESETLOGS after incomplete recovery UNTIL CHANGE 446074
Tue Mar 3 18:15:50 2009
Errors in file /opt/oracle/admin/oracle/udump/oracle_ora_5721.trc:
ORA-00313: open failed for members of log group 1 of thread 1
ORA-00312: online log 1 thread 1: '/opt/oracle/oradata/oracle/redo01.log'
ORA-27037: unable to obtain file status
Linux Error: 2: No such file or directory
Additional information: 3
Tue Mar 3 18:15:52 2009
Errors in file /opt/oracle/admin/oracle/udump/oracle_ora_5721.trc:
ORA-00313: open failed for members of log group 2 of thread 1
ORA-00312: online log 2 thread 1: '/opt/oracle/oradata/oracle/redo02.log'
ORA-27037: unable to obtain file status
Linux Error: 2: No such file or directory
Additional information: 3
Tue Mar 3 18:15:53 2009
Errors in file /opt/oracle/admin/oracle/udump/oracle_ora_5721.trc:
ORA-00313: open failed for members of log group 3 of thread 1
ORA-00312: online log 3 thread 1: '/opt/oracle/oradata/oracle/redo03.log'
ORA-27037: unable to obtain file status
Linux Error: 2: No such file or directory
Additional information: 3
Tue Mar 3 18:15:55 2009
Setting recovery target incarnation to 2
Tue Mar 3 18:15:55 2009
Assigning activation ID 1553627283 (0x5c9a7893)
Thread 1 opened at log sequence 1
Current log# 3 seq# 1 mem# 0: /opt/oracle/oradata/oracle/redo03.log
Successful open of redo thread 1
Tue Mar 3 18:15:55 2009
MTTR advisory is disabled because FAST_START_MTTR_TARGET is not set
Tue Mar 3 18:15:55 2009
SMON: enabling cache recovery
Tue Mar 3 18:15:59 2009
Successfully onlined Undo Tablespace 1.要求检索ora-的内容,并将此关键字的时间点提取出来Tue Mar 3 18:15:50 2009
生成一个新的文本文件
ORA-00313: open failed for members of log group 1 of thread 1
ORA-00312: online log 1 thread 1: '/opt/oracle/oradata/oracle/redo01.log'
ORA-27037: unable to obtain file status ORA-00313: open failed for members of log group 2 of thread 1
ORA-00312: online log 2 thread 1: '/opt/oracle/oradata/oracle/redo02.log'
ORA-27037: unable to obtain file status ORA-00313: open failed for members of log group 3 of thread 1
ORA-00312: online log 3 thread 1: '/opt/oracle/oradata/oracle/redo03.log'
ORA-27037: unable to obtain file status 你是想提取冒号后面那一行字吗?
Tue Mar 3 18:15:53 2009
看到了吧
/**
* 从一个文本文件中读入字符串,然后把该字符串写入另一个文本中
*/package practice;import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.File;
import java.io.FileNotFoundException;
import java.io.FileReader;
import java.io.FileWriter;
import java.io.IOException;
import java.util.regex.Matcher;
import java.util.regex.Pattern;public class RegexFile {
private String fileName = "e:\\test.txt"; //要读的文件
private String date;
//读文件
public void readFile() {
Pattern p = Pattern
.compile("\\w*[ *]\\w*.*\\d[ *]\\d{2}[:]\\d{2}[:]\\d{2}[ *]\\d{4}"); //匹配格式形如X X X X:XX:XX XXXX的正则表达式
BufferedReader reader = null; try {
reader = new BufferedReader(new FileReader(fileName));
String line = null;
while ((line = reader.readLine()) != null) {
Matcher m = p.matcher(line);
if (m.find()) {
date = m.group();
}
}
System.out.println(date);
} catch (FileNotFoundException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
} finally {
if (reader != null)
try {
reader.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
//写文件
public void writeTxt() {
File file = new File("E:\\test2.txt"); //要写入的文件
BufferedWriter writer = null;
try {
if (!file.exists())
file.createNewFile(); writer = new BufferedWriter(new FileWriter(file));
writer.write(date);
} catch (IOException e) {
e.printStackTrace();
} finally {
if (writer != null)
try {
writer.close();
} catch (IOException e) {
e.printStackTrace();
}
}
} public static void main(String[] args) {
RegexFile regexFile = new RegexFile();
regexFile.readFile();
regexFile.writeTxt();
}
}
/**
* 从一个文本文件中读入字符串,然后把该字符串写入另一个文本中
*/package practice;import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.File;
import java.io.FileNotFoundException;
import java.io.FileReader;
import java.io.FileWriter;
import java.io.IOException;
import java.util.regex.Matcher;
import java.util.regex.Pattern;public class RegexFile {
private String fileName = "e:\\test.txt"; //要读的文件
private String date;
//读文件
public void readFile() {
Pattern p = Pattern
.compile("\\w*[ *]\\w*.*\\d[ *]\\d{2}[:]\\d{2}[:]\\d{2}[ *]\\d{4}"); //匹配格式形如X X X X:XX:XX XXXX的正则表达式
BufferedReader reader = null; try {
reader = new BufferedReader(new FileReader(fileName));
String line = null;
while ((line = reader.readLine()) != null) {
Matcher m = p.matcher(line);
if (m.find()) {
date = m.group();
}
}
System.out.println(date);
} catch (FileNotFoundException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
} finally {
if (reader != null)
try {
reader.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
//写文件
public void writeTxt() {
File file = new File("E:\\test2.txt"); //要写入的文件
BufferedWriter writer = null;
try {
if (!file.exists())
file.createNewFile(); writer = new BufferedWriter(new FileWriter(file));
writer.write(date);
} catch (IOException e) {
e.printStackTrace();
} finally {
if (writer != null)
try {
writer.close();
} catch (IOException e) {
e.printStackTrace();
}
}
} public static void main(String[] args) {
RegexFile regexFile = new RegexFile();
regexFile.readFile();
regexFile.writeTxt();
}
}
/**
* 从一个文本文件中读入字符串,然后把该字符串写入另一个文本中
*/package practice;import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.File;
import java.io.FileNotFoundException;
import java.io.FileReader;
import java.io.FileWriter;
import java.io.IOException;
import java.util.regex.Matcher;
import java.util.regex.Pattern;public class RegexFile {
private String fileName = "e:\\test.txt"; //要读的文件
private String date;
//读文件
public void readFile() {
Pattern p = Pattern
.compile("\\w*[ *]\\w*.*\\d[ *]\\d{2}[:]\\d{2}[:]\\d{2}[ *]\\d{4}"); //匹配格式形如X X X X:XX:XX XXXX的正则表达式
BufferedReader reader = null; try {
reader = new BufferedReader(new FileReader(fileName));
String line = null;
while ((line = reader.readLine()) != null) {
Matcher m = p.matcher(line);
if (m.find()) {
date = m.group();
}
}
System.out.println(date);
} catch (FileNotFoundException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
} finally {
if (reader != null)
try {
reader.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
//写文件
public void writeTxt() {
File file = new File("E:\\test2.txt"); //要写入的文件
BufferedWriter writer = null;
try {
if (!file.exists())
file.createNewFile(); writer = new BufferedWriter(new FileWriter(file));
writer.write(date);
} catch (IOException e) {
e.printStackTrace();
} finally {
if (writer != null)
try {
writer.close();
} catch (IOException e) {
e.printStackTrace();
}
}
} public static void main(String[] args) {
RegexFile regexFile = new RegexFile();
regexFile.readFile();
regexFile.writeTxt();
}
}顶……
MMON started with pid=10, OS id=5723
Tue Mar 3 18:15:49 2009
ALTER SYSTEM enable restricted session;
Tue Mar 3 18:15:49 2009
alter database "oracle" open resetlogs
MMNL started with pid=11, OS id=5725
Tue Mar 3 18:15:50 2009
RESETLOGS after incomplete recovery UNTIL CHANGE 446074
Tue Mar 3 18:15:50 2009
Errors in file /opt/oracle/admin/oracle/udump/oracle_ora_5721.trc:
ORA-00313: open failed for members of log group 1 of thread 1
ORA-00312: online log 1 thread 1: '/opt/oracle/oradata/oracle/redo01.log'
ORA-27037: unable to obtain file status
Linux Error: 2: No such file or directory
Additional information: 3
Tue Mar 3 18:15:52 2009
Errors in file /opt/oracle/admin/oracle/udump/oracle_ora_5721.trc:
ORA-00313: open failed for members of log group 2 of thread 1
ORA-00312: online log 2 thread 1: '/opt/oracle/oradata/oracle/redo02.log'
ORA-27037: unable to obtain file status
Linux Error: 2: No such file or directory
Additional information: 3
Tue Mar 3 18:15:53 2009
Errors in file /opt/oracle/admin/oracle/udump/oracle_ora_5721.trc:
ORA-00313: open failed for members of log group 3 of thread 1
ORA-00312: online log 3 thread 1: '/opt/oracle/oradata/oracle/redo03.log'
ORA-27037: unable to obtain file status
Linux Error: 2: No such file or directory
Additional information: 3
Tue Mar 3 18:15:55 2009
Setting recovery target incarnation to 2
Tue Mar 3 18:15:55 2009
Assigning activation ID 1553627283 (0x5c9a7893)
Thread 1 opened at log sequence 1
Current log# 3 seq# 1 mem# 0: /opt/oracle/oradata/oracle/redo03.log
Successful open of redo thread 1
Tue Mar 3 18:15:55 2009
MTTR advisory is disabled because FAST_START_MTTR_TARGET is not set
Tue Mar 3 18:15:55 2009
SMON: enabling cache recovery
Tue Mar 3 18:15:59 2009
Successfully onlined Undo Tablespace 1. 检索出的结果应该是这样的,也就是说
程序要先查出ora-(不区分大小写),然后找出ora-上面的日期时间那一行,
再找出连续的ora-下的error作为结束行,如果没有,结束行则为连续的最后
一个ora-。我用红色的标出,作为检索结果。