BASH POUR la boucle à l'aide de grep et awk
Je vais essayer d'obtenir ce script pour cat
un fichier et grep
de chaque ligne pour 877
et pour chaque ligne trouvée, la première colonne qui est une adresse IP et de les stocker dans des hôtes. Il reste bloqué sur awk
à chaque fois. - Je exécuter sh -x some.sh
pour voir où il est accroché. Dois-je imprimer dans un fichier au lieu d'une liste? Pourquoi est-il coincé sur awk
?
hosts=()
FILENAME=/home/somethin/.hosts.conf
ips=`cat $FILENAME | grep -v '877'`
for line in $ips; do
hosts=$(`awk '{print $1}'`)
done
echo $hosts
Pourquoi
À noter également: UUOC
& pour répondre À votre question, "Pourquoi est-il coincé sur awk?": Vous n'avez pas donné une entrée de la commande awk.
grep -v
?À noter également: UUOC
& pour répondre À votre question, "Pourquoi est-il coincé sur awk?": Vous n'avez pas donné une entrée de la commande awk.
awk '{print $1}' <<< $line
était quelque chose que vous désirez. Cependant, Il ya un plus de désordre dans votre code: Tous les retours à la ligne, tabulations, etc sont devenus blanc " espaces & fichier entier est devenu une seule ligne dans $ips
.OriginalL'auteur cvjones360 | 2013-06-24
Vous devez vous connecter pour publier un commentaire.
Cela peut être réalisé à l'aide de awk:
Voulez-vous les lignes contenant 332 ou les lignes ne contenant pas de 332?
les lignes contenant 332; il devrait être d'environ 32 lignes d'adresses ip.
Dans ce cas, essayez cette commande et laissez-moi savoir combien d'enregistrements que vous obtenez en sortie:
awk '/332/{print $1}' /home/occam/.blc-hosts.conf
?pas de sortie: + awk '/332/{print $1}' /home/occam/.blc-hôtes.conf
OriginalL'auteur anubhava
De répondre à ce fil de discussion basé sur le code d'origine, et une version corrigée/code d'examen:
Il y a plusieurs questions sur ce point, vous donner l'impression que votre script est "coincé sur awk"
hosts=$(`awk '{print $1}'`)
-v
.$(
awk '{print $1}')
.echo variablename
permettra d'imprimer uniquement le premier élément d'un tableau bashRemarque: beaucoup de choses peuvent être réalisées avec
awk
etsed
, mais les deux sont plutôt conçus comme des raccourcis pour plus de commentaires, mais aussi de mieux structurée bash/shell skripts qui sont plus faciles à étendre plus tard. Il y a donc un compromis à trouver, et il n'y a rien de mal dans la façon dont vous avez commencé avec....OriginalL'auteur Lorenz Lo Sauer
Essayer
echo $line | awk '{print $1}'
OriginalL'auteur Davit Samvelyan