Retourner au contenu associé (entrée de forum : Utilisation de awk pour la jointure de 2 fichiers)
Posté par netsurfeur le 21 janvier 2013 à 17:16. En réponse au message Utilisation de awk pour la jointure de 2 fichiers. Évalué à 3.
On peut simplifier.
Les boucles du style:
while read line; do echo -e ${line:29} >> /scriptsOID/mac1016b.tmp done < /scriptsOID/mac1016.tmp;
se simplifient en:
cut -c29- < /scriptsOID/mac1016.tmp > /scriptsOID/mac1016b.tmp
La récupération des mac peut se réécrire en remplaçant les fichiers intermédiaires par des pipes:
snmpwalk -v 2c -c public -OX xxx.xxx.xxx.xxx 1.3.6.1.2.1.17.4.3.1.1 | \ cut -c29- | \ awk -F " " '{ print 1,ドル4ドル":"5ドル":"6ドル":"7ドル":"8ドル":"9ドル }' > /scriptsOID/mac1016.dat
Comme en plus, il faut avoir des listes triées par ordre alphabétique pour join, j'y ajouterais un sort:
snmpwalk -v 2c -c public -OX xxx.xxx.xxx.xxx 1.3.6.1.2.1.17.4.3.1.1 | \ cut -c29- | \ awk -F " " '{ print 1,ドル4ドル":"5ドル":"6ドル":"7ドル":"8ドル":"9ドル }' | \ sort > /scriptsOID/mac1016.dat
En faisant la même chose pour les fichiers bridge.dat et port.dat, les jointures peuvent se simplifier en:
#jointure de mac1016.dat et port bridge.dat pour former mac16bridge.dat join -1 1 -2 1 mac1016.dat bridge.dat | \ awk -F " " '{ if (3ドル<49) print 3,ドル 2ドル} ' | \ sort > mac.sort #jointure de portid.dat et port.dat pour former portname.dat join -1 1 -2 1 portid.dat port.dat | \ cut -d ' ' -f 2,3 | \ awk -F " " '{ if (1ドル<49) print 1,ドル 2ドル} ' | \ sort > ./portname.sort #jointure de mac16bridge.dat et portname.dat pour former le fichier final BD.dat join -1 1 -2 1 ./mac.sort portname.sort > BD.dat
AltStyle によって変換されたページ (->オリジナル) / アドレス: モード: デフォルト 音声ブラウザ ルビ付き 配色反転 文字拡大 モバイル
[^] # Re: Bon autant vous montrez le complet ça vous aidera peut etre
Posté par netsurfeur . En réponse au message Utilisation de awk pour la jointure de 2 fichiers. Évalué à 3.
On peut simplifier.
Les boucles du style:
se simplifient en:
La récupération des mac peut se réécrire en remplaçant les fichiers intermédiaires par des pipes:
Comme en plus, il faut avoir des listes triées par ordre alphabétique pour join, j'y ajouterais un sort:
En faisant la même chose pour les fichiers bridge.dat et port.dat, les jointures peuvent se simplifier en: