Comment effectuer une commande Ssi grep renvoie 1 seule ligne ?
Résolu/Fermé
Julosdu13
Messages postés
3
Date d'inscription
jeudi 24 mars 2016
Statut
Membre
Dernière intervention
24 mars 2016
-
24 mars 2016 à 13:50
Julosdu13 Messages postés 3 Date d'inscription jeudi 24 mars 2016 Statut Membre Dernière intervention 24 mars 2016 - 24 mars 2016 à 15:07
Julosdu13 Messages postés 3 Date d'inscription jeudi 24 mars 2016 Statut Membre Dernière intervention 24 mars 2016 - 24 mars 2016 à 15:07
A voir également:
- Comment effectuer une commande Ssi grep renvoie 1 seule ligne ?
- Invite de commande - Guide
- Commande terminal mac - Guide
- Comment aller à la ligne sur excel - Guide
- Comment imprimer un tableau excel sur une seule page - Guide
- Partager photos en ligne - Guide
2 réponses
Salut,
man grep :
Sinon, concernant :
Il y a plus simple :
;-))
man grep :
-m NUM, --max-count=NUM
Stop reading a file after NUM matching lines.
Sinon, concernant :
currdir=`pwd`
echo "$currdir"| cut -f 8 -d '/'
Il y a plus simple :
basename ${PWD}
;-))
Julosdu13
Messages postés
3
Date d'inscription
jeudi 24 mars 2016
Statut
Membre
Dernière intervention
24 mars 2016
24 mars 2016 à 14:48
24 mars 2016 à 14:48
Hello merci pour cettte reponse !
Le truc c est que je ne veux pas forcement lire seulement la premiere ligne, je voudrai pouvoir trier les lignes si jamais le grep m'en renvoie plus d'une.
Du coup je voudrai une boucle if avec comme condition si le grep renvoie une ligne alors je continue mon scrpit normalement sinon je lui rajoute d autres commandes :)
Le truc c est que je ne veux pas forcement lire seulement la premiere ligne, je voudrai pouvoir trier les lignes si jamais le grep m'en renvoie plus d'une.
Du coup je voudrai une boucle if avec comme condition si le grep renvoie une ligne alors je continue mon scrpit normalement sinon je lui rajoute d autres commandes :)
Dans ce cas tu testes avec un
grep -c 'motif':
$ cat fich
1 bla bla
2 bla bli bla
3 bla blu blo
4 bli bla
5 bly ble bla bli
6 bla bla bla
7 bla bla
8 bla bli blu
9 bla blu
$ if [ $(grep -c 'blo' fich) = 1 ]; then echo "Good"; else echo "Bad";fi
Good
$ if [ $(grep -c 'bli' fich) = 1 ]; then echo "Good"; else echo "Bad";fi
Bad
Julosdu13
Messages postés
3
Date d'inscription
jeudi 24 mars 2016
Statut
Membre
Dernière intervention
24 mars 2016
>
UnGars
24 mars 2016 à 15:07
24 mars 2016 à 15:07
la bombe !
Merci 1Gars !
:D
Merci 1Gars !
:D
salut,
si tu veux appeler les sous-répertoires du répertoire en cours dans une boucle
autre chose : utiliser des chemins relatifs (le répertoire courant, par exemple) n'est pas une bonne idée àmha, car un script peut être exécuté de n'importe où.
pour compter le nombre de lignes comportant un motif, il y a
donc, quelque chose comme :
si tu veux appeler les sous-répertoires du répertoire en cours dans une boucle
for, la commande
ls, qui est toujours mauvaise dans un script, est fausse, et inutile :
for dir in ./*/
do
echo "$dir est un répertoire, pas besoin de faire de test"
done
autre chose : utiliser des chemins relatifs (le répertoire courant, par exemple) n'est pas une bonne idée àmha, car un script peut être exécuté de n'importe où.
pour compter le nombre de lignes comportant un motif, il y a
wc -l, ou l'option
-cde
grep(i lfaut lire les pages man !)
donc, quelque chose comme :
nbL=$(grep -c 'motif' fichier)
if test $nbL -gt 1
then
commandes "normales"
elif test $nbL -gt 1
autres commandes
fi