Forum Programmation.shell [Korn Shell] Problème avec un Grep

Posté par  .
Étiquettes : aucune
0
12
jan.
2006
Bonjour

J'ai un petit soucis en korn shell avec l'utilisation d'un grep dans ce morceau de code

Code :

elif ls $LOCAL_PROCESS_DIR | head -1 | grep -q -w 'CORF13|Sheet1'; then    echo "Sheet 1 OK";
file=$(ls $LOCAL_PROCESS_DIR | head -1 | egrep -w 'CORF13|Sheet1')
mv $LOCAL_PROCESS_DIR/$file $LOCAL_PROCESS_DIR/KPI_CORF13_KPI1.CSV




Je veux qu'il rentre dans la condition si le premier fichier de mon rep contient le mot CORF13 ET le mot Sheet1

A priori quand je lance la commande "ls" seule il me retroune le fichier si il est la sinon il retourne rien...

Par contre dans mon code si le premier fichier ne contient pas les 2 mot il rentre quand même dans le code alors qu'il devrait pas vu que la commande returne un False, la il considere que c'est tjs True

Si quelqu'un pouvait m'aider pour ce petit problème à 2 balles mais qui me casse la tête
  • # Expression régulière étendue.

    Posté par  . Évalué à 1.

    L'opérateur | fait partie des expressions régulières étendues. Il faut ajouter l'option -E dans la commande grep (ou utiliser egrep).
    Une autre facon est de mettre \ devant |. Cette approche est cependant moins lisible que les 2 premières.
  • # le symbole | veux dire ou !!

    Posté par  . Évalué à 1.

    si CORF13 est toujours avant Sheet1 ... | grep '.*CORF13.$Sheet1' si les deux expressions sont dans n'importe quel ordre ... | grep '.*CORF13.$Sheet1|.*Sheet1.*CORF13' CoreDumped

Suivre le flux des commentaires

Note : les commentaires appartiennent à celles et ceux qui les ont postés. Nous n’en sommes pas responsables.