2010-04-09 6 views
2

J'ai besoin de la commande RegEx pour obtenir toutes les lignes qui n'ont pas le nom du travail contenant "filewatch". Toute aide est la bienvenue! Merci.Regex - Ignorer les lignes avec le texte correspondant

STATUS: FAILURE   JOB: i3-imds-dcp-pd-bo1-05-ftpfilewatcher 
STATUS: FAILURE   JOB: i3-cur-atmrec-pd-TD_FTP_Forecast_File_Del_M_Su 
ALARM: JOBFAILURE  JOB: i3-cur-atmrec-pd-TD_FTP_Forecast_File_Del_M_Su 
STATUS: FAILURE   JOB: i3-sss-system-heartbeat 
ALARM: JOBFAILURE  JOB: i3-sss-system-heartbeat 
STATUS: FAILURE   JOB: i3-chq-cspo-pd-batch-daily-renametable-fileok 
STATUS: FAILURE   JOB: i3-chq-cspo-pd-batch-daily-renametable-file 
ALARM: JOBFAILURE  JOB: i3-chq-cspo-pd-batch-daily-renametable-fileok 
ALARM: JOBFAILURE  JOB: i3-chq-cspo-pd-batch-daily-renametable-file 
STATUS: FAILURE   JOB: i3-imds-dcp-pd-bo1-35-filewatcher 
STATUS: FAILURE   JOB: i3-imds-dcp-pd-bo1-05-ftpfilewatcher 
STATUS: FAILURE   JOB: i3-imds-dcp-pd-bo1-35-filewatcher 
STATUS: FAILURE   JOB: i3-imds-dcp-pd-bo1-05-ftpfilewatcher 
+0

Quelle langue/outil/bibliothèque? – Thomas

+1

Avec quelle langue ou commande travaillez-vous? Sur beaucoup de systèmes, 'grep -v filewatch' serait tout ce dont vous auriez besoin. –

Répondre

3

Si votre implémentation d'expression régulière prend en charge look-ahead assertions, essayez ceci:

^(STATUS|ALARM): +(JOB)?FAILURE +JOB: ((?!filewatch).)+$ 

Assurez-vous que ^ et $ correspondent le fichier ligne début/fin.

+0

Ne voulez-vous pas dire que '^' et '$' devraient correspondre au début et à la fin de chaque * ligne *? –

+0

@Tim Pietzcker: Ah oui, bien sûr! Je voulais dire la ligne, mais a écrit le fichier. ;-) – Gumbo