Forum Programmation.shell Utilisation de grep

Posté par  .
Étiquettes : aucune
0
2
mar.
2006
Hello,
je débute en bourne shell et j'ai quelques questions.

1) Je veux tester si une variable correspond à une expression régulière et j'utilise:
if echo $salle |grep '[AB][0-4][0-9][0-9]$'> /dev/null; then
...



2 ) Un peu comme précemment fauf que je veux verifier que l'expression se trouve également en début de ligne d'un fichier :
if grep ^$login droits.txt > /dev/null && echo $login | grep '[a-z][a-z][a-z][a-z]$'; then

mais ca me parait pas très élegant. Peut-on faire plus simple?

3) Je voudrais recuperer 5 variables contenues dans une ligne et separées par ":". Je voudrais savoir comment faire à part 5 fois var=cat | cut

Merci ;)
  • # IFS et set

    Posté par  . Évalué à 1.

    Pour la séparartion de champs, tu peux utiliser IFS et set :


    OLD_IFS="${IFS}"
    IFS=":"
    set -- $ligne
    IFS="${OLD_IFS}"

    VAR1=$1
    VAR2=$2
    ...
    VAR5=$5


    IFS sert à définir les séparateurs de champs du shell.

    Après, pour ton grep, pourquoi tu ne fais pas ça dans le même grep ?

    if echo $login | grep -qs '^[a-z][a-z][a-z][a-z]$';
    then
    ...
  • # Tu fais quoi après ton grep?

    Posté par  . Évalué à 2.

    Parce que si c'est la ligne en question que tu traite, awk est une solution élégante.

Suivre le flux des commentaires

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