Comment commencer à utiliser awk
awk, sed et grep sont trois de mes outils préférés dans la ligne de commande Linux ou UNIX. Ils sont tous assez puissants. Aujourd`hui, nous allons voir comment obtenir la fissuration avec awk pour vous aider à l`aise dans l`utiliser. Ensuite, nous allons voir quelques awk utiles: une ligne pour rendre les choses un peu plus de plaisir pour vous.
Contenu
AWK est un langage de programmation conçu pour le traitement des données à base de texte, soit dans des fichiers ou des flux de données. Il a été créé à Bell Labs dans les années 1970. Bien qu`il soit assez vieux, ne vous laissez pas berner par son âge. Il est extrêmement puissant et efficace à ce qu`il fait. Obtenons nos mains maintenant sales.
Avant de nous plonger dans le travail complexe et l`utilisation de awk Nous allons vous aider à démarrer là-dessus est essentiel. Nous allons créer et utiliser un fichier factice pour cet exercice. Vous pouvez utiliser à peu près tout fichier texte, comme un journal de votre système. Je vais utiliser un exemple de sortie d`un de mes outils de surveillance du système favori - Dstat. Voici le résultat:
Ceci est une sortie idéale pour awk gérer. awk est grande avec virgule ou contenu séparés onglet. Vous verrez pourquoi bientôt. Donc, soit créer des données similaires ou copier-coller mon exemple ci-dessus dans un fichier fictif appelé quelque chose comme test.txt. Lancez une fenêtre de terminal sur votre ordinateur Linux. Presque toutes les saveurs de Linux fournissent awk. Si vous avez trouvé celui qui ne l`a pas pour une raison quelconque s`il vous plaît l`installer. Sur la fenêtre de terminal tapez la commande suivante à partir du répertoire où vous avez enregistré le fichier test.txt -
Video: COMMENT BIEN PARAMÉTRER SON DRONE ! // DJI Phantom 3 4K [FR]
# Awk { « print `} test.txt
La sortie doit contenir tout le contenu du fichier texte. Quel est le plaisir dans tout cela.
Maintenant, nous allons voir comment vous pouvez choisir une colonne et imprimer que. Exécutez la commande suivante:
# Awk { « print $ 1 `} test.txt
Maintenant, nous demandons awk d`imprimer seulement la première colonne du fichier texte. Il trouvera automatiquement que le fichier est un onglet séparé et une impression que la première colonne du contenu. Vous devriez voir quelque chose comme ça dans la sortie:
--total-cpu-usage--
usr
5
13
8
0
1
1
1
0
1
1
Vous pouvez faire la même chose pour une colonne que vous aimez. Si vous voulez awk imprimer la commande du troisième changement de colonne ci-dessus commande affichée à:
# Awk { « print $ 3 `} test.txt
Vous pouvez également awk imprimer plusieurs colonnes. Donc, si vous voulez que les premier, troisième et septième colonnes imprimées les ajouter à la commande séparés par des virgules.
# {Awk « imprimer 1 $, 3 $, 7 $ `} test.txt
Video: [Tuto] Comment utiliser Power Director ? (Montage vidéo)
ferait l`affaire pour vous:
--total-cpu-usage-- -net / total-
usr IDL lire
5 93 154k
13 87 0
8 92 0
0 99 0
1 97 0
1 98 0
1 99 0
0 99 0
1 99 0
1 100 0
Si vous avez un fichier plus délicat comme le fichier / etc / mot de passe où les données sont séparées par des virgules plutôt que des espaces ou des tabulations, awk ne récupère pas automatiquement. Dans ce cas, vous pouvez nourrir awk avec le séparateur correct. Utilisez une commande comme celui-ci pour imprimer la deuxième colonne du fichier:
# Awk -F `:` { « print $ 1 `} / etc / passwd
Cette commande vous donnera une sortie des noms d`utilisateur de tous les utilisateurs sur votre système:
Pomme
mangue
banane
pastèque
kiwi
Orange
Vous pouvez faire la même chose avec un autre type de séparateurs. Vous pouvez également utiliser awk pour analyser vos fichiers journaux. Par exemple, si vous voulez voir toutes les adresses IP et les URL Web connexes qui ont été les accès sur votre serveur Web, vous pouvez utiliser awk pour analyser votre journal d`accès du serveur Web pour obtenir ces informations. Utilisez la commande suivante:
# Awk « $ 9 200 == {print $ 1, $ 7} » access.log
199.63.142.250 / 2008/10 / my-5-lieux de rencontre favoris /
220.180.94.221 / 2009/02 / Querious-a-mysql-client-for-the-mac /
67.190.114.46 / 2009/05 /
173.234.43.110 / 2009/01 / vélo-location /
173.234.38.110 /wp-comments-post.php
En utilisant l`analyse syntaxique comme cela, vous pouvez savoir si quelqu`un visite votre site beaucoup, car ils peuvent être de voler des informations. Vous pouvez également trier ces informations. Dites que vous vouliez savoir combien de fois une adresse IP particulière a visité votre site web
# Awk « $ 9 200 == {print $ 1} » access.log | sorte | uniq -c | sorte -nr
46 122.248.161.1
35 122.248.161.2
26 65.202.21.10
24 67.195.111.46
19 144.36.231.111
18 59.183.121.71