从RedHat Linux 7中的文件输出特定的字符串 - 正则表达式可能

从RedHat Linux 7中的文件输出特定的字符串 - 正则表达式可能

问题描述:

第一次问一个问题,所以如果我在发布这个问题之前跳过了一些基础知识,我很抱歉。从RedHat Linux 7中的文件输出特定的字符串 - 正则表达式可能

基本上我的问题很简单....我有一个文件经常写入,第一个字符串/列总是有“CLEAR”或“CRITICAL”,有时是“WARNING”,但我想要忽略这些条目。

大约在第17列有一个特定的32位字母数字#伴随每个条目。我试图找到一种方法,无需修改原始文件....只需将第一列和32位字母数字#写入新文件中供初学者使用。不幸的是,32位#并不总是在第17列,否则我可以自己做。

以下是我所指的日志文件的一部分。如果我的问题不够详细,或者以前已经回答过,请不要因为我的无知而猛烈抨击我。

CLEAR; lnx20162.csxt.csx.com;数据库实例;行动Dec 14, 2012 4:46:31 PM EST; D0C53D1FB19075C2E0405C0A6FF002BF;公制警报 ;回应:状态;数据库状态是OPEN。

CRITICAL; lnx20016.csxt.csx.com;数据库实例; GISP_GISP2; Dec 14,2012 4:39:54 PM EST; D0C53D32C0E53F85E0405C0A6FF002C9; 公制警报; alertLog:genericErrStack; ORA错误堆栈(4,031) 登录 /oramisc01/oracle/diag/rdbms/gisp/GISP2/trace/alert_GISP2.log。

CRITICAL; lnx20016.csxt.csx.com;数据库实例; GISP_GISP2; 2012年12月14日下午4点40分美国东部时间; D0C53D32C1093F85E0405C0A6FF002C9; 公制警报; alertLog:genericErrStack; ORA错误堆栈(04031, 04031)登录 /oramisc01/oracle/diag/rdbms/gisp/GISP2/trace/alert_GISP2.log。

CRITICAL; lnx20016.csxt.csx.com;数据库实例; GISP_GISP2; 2012年12月14日下午4:39:55 EST; D0C53D32C0EB3F85E0405C0A6FF002C9; 公制警报; alertLog:genericErrStack; ORA错误堆栈(04031, 04031,04031,04031,04031)登录到 /oramisc01/oracle/diag/rdbms/gisp/GISP2/trace/alert_GISP2.log。

+1

我看到的字母数字一直在使用分离器'列6;'我错过了什么? (也不像32位 - 你可以点亮你需要的数字吗?) – urban

+0

'cut -sd';' -f 1,6'? – melpomene

+0

用四个空格前缀代码/数据。请看[编辑帮助](http://stackoverflow.com/editing-help)。 – Cyrus

grep -E -o "EST ;.{0,33}" file1| cut -d ";" -f2 > outputfile 

你需要找到一个一致的 “挂钩”,这是 “EST”;

如果你想完成这件事所有的时间说上一分钟,使一个脚本,并把在crontab中