Quelques commandes utiles de base
Nous vous avons déjà fourni une description de base des scripts shell et un exemple de présentation des boucles for, mais assurez-vous de consulter ces articles si vous avez raté notre guide de scripts shell jusqu'à présent.
La ligne de commande est merveilleuse pour de nombreuses raisons, et la redirection est l’une des plus importantes. Si vous deviez noter et reproduire le résultat de chaque commande pour pouvoir prendre d'autres mesures ou l'utiliser à d'autres fins, nous serions tous devenus fous il y a longtemps. La redirection nous permet d’utiliser cette sortie et de la sauvegarder ou de l’utiliser immédiatement comme entrée d’une autre commande. Nous pouvons également utiliser des fichiers comme entrées pour d'autres commandes.
Avant de poursuivre, voyons quelques commandes de base qui peuvent être utiles dans de nombreux endroits.
écho - Cette commande affiche simplement (affiche) l'intégralité de son argument sur la ligne de commande en sortie
echo argument with spaces
chat - Cette commande affiche le contenu des fichiers texte en sortie.
cat file_to_be_read
Disons que nous créons ce fichier texte en nano:
grep - C’est l’une des commandes les plus puissantes et les plus utiles à votre disposition sous Linux. Il s'agit de Global / Regular Expression Print. Il regarde à travers un fichier et imprime toute ligne correspondant à un motif particulier. Comme ce modèle est basé sur une "expression régulière", une ligne concise peut générer une multitude de modèles à faire correspondre. Pour ne pas, cependant, vous pouvez entrer une sterne pour la recherche.
grep pattern file
Redirection des sorties
Pour rediriger la sortie d'une commande vers un fichier, nous utilisons un caractère spécial, le symbole supérieur à (>).
Changeons notre liste, allons-nous? Entrez la commande suivante:
echo pepperoni > list
Notez également que le contenu précédent de «liste» a été supprimé. Essayez à nouveau:
echo yellow peppers >> list
Prenons le résultat d’une commande et le plaçons dans un fichier:
ls –al / > ~/rootlist
Tuyauterie ou chaînage
Piping est ainsi nommé car il utilise le tube (|; partagé avec la touche de la plupart des claviers). Essentiellement, il prend le résultat d'une commande et le transmet directement à une autre. Vous pouvez créer de longues chaînes de commandes pour obtenir de cette manière une sortie souhaitée très spécifique, ce qui est très pratique pour des commandes telles que grep.
Comme vous pouvez le constater, grep est sensible à la casse. Vous pouvez utiliser le drapeau “-i” pour qu’il ignore la casse.
Redirection des entrées
Vous pouvez également effectuer des entrées dans des fichiers pour des commandes en utilisant le symbole inférieur à (<).
cat < list
Disons que nous souhaitons filtrer tout mot contenant «pep» de notre fichier «liste» actuel dans un nouveau fichier appelé «révisions».
grep pep < list > revisions
grep pep < list | sort > revisions
Pour illustrer la commande de tri, examinons l’exemple suivant:
Un script simple
Créons un script au format suivant:
script searchterm listfile
Il faudra le terme et utiliser grep pour rechercher dans un fichier de liste, trier les résultats, puis les exporter dans un autre fichier.
En ce qui concerne le tri, vous pouvez faire plus que simplement trier par ordre alphabétique. Consultez la page de manuel pour connaître certaines des commandes suivantes:
- tsort - une fonction de tri topologique plus avancée
- tr - vous permet de mapper des caractères spécifiques avec d'autres caractères et de les transcrire entre eux.
- uniq - supprime les non-uniques (lire: dupliquer)
- awk - langage / fonction de traitement de texte vraiment avancé pouvant être utilisé pour séparer les champs dans les noms de fichiers
- couper, coller / rejoindre - commandes utiles pour isoler les champs des fichiers texte et ajouter de nouvelles données dans des colonnes
- look - recherche comme le fait grep, mais utilise un fichier de dictionnaire (qui peut être spécifié par l'utilisateur) pour la recherche
- wc - vous permet d'obtenir le nombre de mots, le nombre de lignes, le nombre de caractères, etc.
Nous avons jeté un coup d’œil à quelques bases plus importantes aujourd’hui qui peuvent être aussi utiles sur la ligne de commande que dans les scripts. Les données textuelles sont souvent au cœur des choses que nous utilisons quotidiennement. Il est donc essentiel de pouvoir les utiliser, les rechercher et les manipuler.
Quels sont certains de vos scripts préférés? Avez-vous des scripts à usage spécial pour les fichiers texte? Partagez ce que vous savez dans les commentaires!