2016-02-03 1 views
0

J'essaye de greffer certains motifs à partir d'un fichier et de les lister, mais la commande grep ne fonctionne pas de manière cohérente.
Pour l'un des modèles, son fonctionnement et pour les autres ne fonctionne pas. S'il vous plaît laissez-moi savoir si je manque quelque chose:La commande gegrep fonctionne de manière incohérente

Le fichier à grep

 
=============================================================================================================================== 
START_TIME    END_TIME     CLIENT_NAME     STATUS   BACKUP_TYPEPOLICY_NAME 
=============================================================================================================================== 
2015-12-09 01:51:35  2015-12-09 02:11:47  atrcxb1144-bup3    success  FULL  atrcxb1144-bup3_FILES 
2015-12-09 02:13:06  2015-12-09 02:14:12  atrcxb1144-bup3    success  FULL  atrcxb1144-bup3_Hot_Catalog 
2015-12-15 08:17:48  2015-12-15 08:18:55  atrcxb1144-bup3    success  FULL  atrcxb1144-bup3_Hot_Catalog 
2016-01-23 23:55:00  2016-01-24 00:17:03  cbtcnbgrn2eniqs2-bkup   success  FULL  ENIQ_STATS_ROOT_cbtcnbgrn2eniqs2-bkup 

Unsuccessful

bash-3.2# /usr/sfw/bin/gegrep '([[:blank:]]+success[[:blank:]]+[FI][UN][LC][LR][[:blank:]]+ENIQ_STATS_ROOT_cbtcnbgrn2eniqs2-bkup[[:blank:]]+)' /usr/openv/netbackup/db/.backup_history 
bash-3.2# echo $? 
1 

réussie

bash-3.2# /usr/sfw/bin/gegrep '([[:blank:]]+success[[:blank:]]+[FI][UN][LC][LR][[:blank:]]+ENIQ_STATS_ONBLADE_RAW_cbtcnbgrn2eniqs2-bkup[[:blank:]]+)' /usr/openv/netbackup/db/.backup_history 
2016-01-23 23:55:00  2016-01-24 00:17:03  cbtcnbgrn2eniqs2-bkup   success  FULL  ENIQ_STATS_ONBLADE_RAW_cbtcnbgrn2eniqs2-bkup     
bash-3.2# echo $? 
0 

Répondre

0

Il semble que dans le cas infructueux, ENIQ_STATS_ROOT_cbtcnbgrn2eniqs2-bkup n'est pas suivi d'un espace/vide, tandis que dans le succès, ENIQ_STATS_ONBLADE_RAW_cbtcnbgrn2eniqs2-bkup est.

Et votre expression régulière correspond à un blanc requis à la fin de ces deux colonnes.

Alors grep fonctionne comme prévu, et correspondre à la chaîne dans votre cas d'échec, vous devez remplacer la dernière [[blank]]+ avec [[blank]]* comme suit:

bash-3.2# /usr/sfw/bin/gegrep '([[:blank:]]+success[[:blank:]]+[FI][UN][LC][LR][[:blank:]]+ENIQ_STATS_ROOT_cbtcnbgrn2eniqs2-bkup[[:blank:]]*)' /usr/openv/netbackup/db/.backup_history

Les + correspond à l'une ou plusieurs occurrences le modèle précédent, tandis que * zéro ou plusieurs occurrences.