A voir également:
- Script ksh awk grep
- Script vidéo youtube - Guide
- Ghost script - Télécharger - Polices de caractères
- Microsoft activation script - Accueil - Windows
- Script bat - Guide
- Script download - Télécharger - Édition & Programmation
5 réponses
jipicy
Messages postés
40842
Date d'inscription
jeudi 28 août 2003
Statut
Modérateur
Dernière intervention
10 août 2020
4 897
15 juil. 2009 à 16:08
15 juil. 2009 à 16:08
Salut,
Une solution parmi d'autres...
Une solution parmi d'autres...
[tmpfs]$ cat plop
A6DF45AA
A6TPER85
RT85PLM8
[tmpfs]$ grep -q "$(echo "A6DF45AA 0707170809 I O RMCdaemon The daemon is started." |awk '{print $1}')" plop
[tmpfs]$ echo $?
0
[tmpfs]$ grep -q "$(echo "B6DF45AA 0707170809 I O RMCdaemon The daemon is started." |awk '{print $1}')" plop
[tmpfs]$ echo $?
1
[tmpfs]$
$? correspond au code retour, suffit de le tester en sortie et de lancer le traitement en fonction...
dubcek
Messages postés
18758
Date d'inscription
lundi 15 janvier 2007
Statut
Contributeur
Dernière intervention
24 décembre 2024
5 623
16 juil. 2009 à 09:54
16 juil. 2009 à 09:54
hello
avec awk
$ cat data
A6DF45AA
A6TPER85
RT85PLM8
$ cat data2
A6DF45AA 0707170809 I O RMCdaemon The daemon is started
A6DF45xx 0707170809 I O RMCdaemon The daemon is started
RT85PLM8 0707170809 I O RMCdaemon The daemon is started
$ awk 'BEGIN{while("cat data"|getline)x[$1]=$1}; {if(x[$1] != $1) print $0}' < data2
A6DF45xx 0707170809 I O RMCdaemon The daemon is started
$
avec awk
$ cat data
A6DF45AA
A6TPER85
RT85PLM8
$ cat data2
A6DF45AA 0707170809 I O RMCdaemon The daemon is started
A6DF45xx 0707170809 I O RMCdaemon The daemon is started
RT85PLM8 0707170809 I O RMCdaemon The daemon is started
$ awk 'BEGIN{while("cat data"|getline)x[$1]=$1}; {if(x[$1] != $1) print $0}' < data2
A6DF45xx 0707170809 I O RMCdaemon The daemon is started
$
a j'ai compris mais la ta besoin de 2 fichier or que moi j'attrape ce que tu met dans data2 via une commande il ya moyen ou pas ?
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
dubcek
Messages postés
18758
Date d'inscription
lundi 15 janvier 2007
Statut
Contributeur
Dernière intervention
24 décembre 2024
5 623
16 juil. 2009 à 13:30
16 juil. 2009 à 13:30
BEGIN{while("cat data"|getline)x[$1]=$1}
d'abord, on lit le fichier data ligne par ligne, lignes que l'on stocke dans un tableau x en utilisant le champ $1 comme index : x[A6DF45AA]=A6DF45AA, etc
{if(x[$1] != $1) print $0}' < data2
pour chaque ligne de data2, si x[$1] n'est pas égal à $1, cela veut dire que le champ $1 ne se trouve pas dans le tableau x, donc $1 n'est pas présent dans le fichier data alors on l'imprime (ou on le traite autrement)
j'utilise data2, mais tu peux faire
commande ¦ awk 'BEGIN{while("cat data"|getline)x[$1]=$1}; {if(x[$1] != $1) print $0}'
d'abord, on lit le fichier data ligne par ligne, lignes que l'on stocke dans un tableau x en utilisant le champ $1 comme index : x[A6DF45AA]=A6DF45AA, etc
{if(x[$1] != $1) print $0}' < data2
pour chaque ligne de data2, si x[$1] n'est pas égal à $1, cela veut dire que le champ $1 ne se trouve pas dans le tableau x, donc $1 n'est pas présent dans le fichier data alors on l'imprime (ou on le traite autrement)
j'utilise data2, mais tu peux faire
commande ¦ awk 'BEGIN{while("cat data"|getline)x[$1]=$1}; {if(x[$1] != $1) print $0}'
15 juil. 2009 à 16:15
15 juil. 2009 à 16:30
Mon exemple récupère le 1er champ de la ligne que tu récupères via la commande "errpt | head -2 | tail -1" et fait une recherche dans le fichier (ici il n'y a que les 3 noms que tu as donné en exemple mais il pourrait y en avoir des centaines voire des milliers) et retourne un code d'erreur (0 pour vrai et 1 pour faux), en fonction de ce code, tu traites ta ligne ou pas ;-))
15 juil. 2009 à 17:35