in

Plus de commandes et chaînes de base

Vous avez appris à créer des scripts, à utiliser des arguments et à créer des boucles for. Jetons maintenant un coup d’œil à quelques commandes plus basiques, à la manipulation de fichiers texte et à la redirection des entrées et des sorties vers des fichiers et d’autres commandes.

Quelques commandes utiles de base

Nous vous avons déjà donné une ventilation de base des scripts shell et un aperçu basé sur des exemples de boucles for, mais assurez-vous de consulter ces articles si vous avez manqué notre guide de script 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 la sortie de chaque commande afin de prendre d’autres mesures ou de l’utiliser pour autre chose, alors 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 pour une autre commande. Nous pouvons également utiliser des fichiers comme entrées pour d’autres commandes.

Avant de continuer, couvrons quelques commandes de base qui peuvent être utiles dans de nombreux endroits différents.

écho – Cette commande imprime (affiche) simplement l’intégralité de son argument sur la ligne de commande en sortie

argument d’écho avec des espaces

Comme vous pouvez le voir, les caractères spéciaux doivent être «échappés» pour être traités normalement. Cela se fait en utilisant une barre oblique inverse () devant le caractère. Il vaut mieux utiliser des citations. La commande echo fonctionne également avec des variables.

Comme vous pouvez le voir, les guillemets simples et doubles se comportent différemment. Pour plus d’informations, consultez Quelle est la différence entre les guillemets simples et doubles dans le shell Bash?

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:

Lorsque nous utilisons la commande cat sur le fichier, nous pouvons voir sa sortie.

grep – C’est l’une des commandes les plus puissantes et les plus utiles disponibles sous Linux. Il signifie Global / Regular Expression Print. Il examine 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 produire une multitude de modèles à mettre en correspondance. Pour non, cependant, vous pouvez entrer une sterne pour la recherche.

fichier de motif grep

Je vous assure que grep peut faire plus, mais pour l’instant, restons aux choses plus faciles.

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, d’accord? Entrez la commande suivante:

echo pepperoni> liste

Vous pouvez voir que l’écho n’affiche plus la ligne, et quand nous regardons le contenu du fichier «liste», nous voyons ce que nous y avons fait écho.

Notez également que le contenu précédent de «liste» a été supprimé. Essaye encore:

Cela peut être utile lorsque vous souhaitez réutiliser un fichier, mais souvent nous voulons simplement l’ajouter à un fichier existant. Pour cela, nous utilisons deux symboles supérieurs consécutifs:

echo poivrons jaunes >> liste

Facile! Utilisons cette commande pour créer une liste plus grande, d’accord?

On y va. Je pense que vous pouvez voir pourquoi tant de geeks utilisent la ligne de commande pour créer des listes de tâches, etc., mais cela s’améliore encore.

Prenons la sortie d’une commande et mettons-la dans un fichier:

ls –al /> ~ / rootlist

Créer des listes de fichiers, les éditer, puis exécuter des commandes sur ceux que vous voulez n’a jamais été aussi simple. Et, pendant que nous effectuons ces fonctions de base dans la ligne de commande, celles-ci fonctionnent également bien dans les scripts.

Tuyauterie ou chaînage

La tuyauterie est ainsi nommée car elle utilise le tube, (|; partagé avec la touche sur la plupart des claviers). Essentiellement, il prend la sortie d’une commande et la transmet directement à une autre. Vous pouvez créer de longues chaînes de commandes pour obtenir une sortie souhaitée très spécifique de cette façon, et c’est très pratique pour des commandes comme grep.

Il agit beaucoup comme « > » sauf qu’il peut être enchaîné plusieurs fois et que son effet est plus général en ce qu’il n’a pas besoin de passer par un fichier texte.

Comme vous pouvez le voir, grep est sensible à la casse. Vous pouvez utiliser l’indicateur «-i» pour qu’il ignore la casse.

Redirection des entrées

Vous pouvez également prendre des entrées de fichiers pour des commandes en utilisant le symbole inférieur à (<).

chat

« Ce n’est pas différent d’utiliser un argument! » tu pourrais dire. Eh bien, vous auriez raison dans ce cas. Là où la redirection des entrées est vraiment utile, c’est dans le chaînage des commandes.

Disons que nous voulons filtrer tout mot qui contient du «pep» de notre fichier «liste» actuel dans un nouveau fichier appelé «révisions».

grep pep révisions

Répétons cette commande et ajoutons du tri.

grep pep révisions

Cela utilisera «pep» comme terme de recherche dans la «liste» du fichier d’entrée, le triera par ordre alphabétique (tous les termes en majuscules suivis de tous les termes en minuscules), puis le sortira dans le fichier «révisions».

Pour illustrer la commande de tri, regardons l’exemple suivant:

Comme vous pouvez le voir, l’ajout de l’indicateur «-f» à la commande de tri vous permet d’ignorer la casse. Cela nous permet de classer facilement les lignes par ordre alphabétique dans les fichiers texte et d’ignorer la capitalisation lorsque cela n’a pas d’importance.

Un script simple

Créons un script qui a la forme suivante:

script searchterm listfile

Il prendra le terme et utilisera grep pour rechercher dans un fichier de liste, trier les résultats, puis les afficher dans un autre fichier.

Voici le répertoire dans lequel nous allons tester le script:

Et, nous pouvons créer une liste de ce qui se trouve ici, puis exécuter le script.

Voilà! Plus vous apprenez les règles des expressions régulières, plus vous pouvez créer une commande de recherche avec précision. Et tout ce qui est valide entre guillemets peut être remplacé par votre premier argument!

En ce qui concerne le tri, vous pouvez faire plus que simplement trier par ordre alphabétique. Jetez un œil à la page de manuel pour certaines des commandes suivantes:

  • tsort – une fonction de tri topologique plus avancée
  • tr – vous permet de mapper des caractères spécifiques à d’autres personnages et de les transcrire entre eux.
  • uniq – supprime tout non-unique (lire: dupliquer)
  • awk – un langage / une fonction de traitement de texte très avancé qui peut être utilisé pour séparer les champs dans les noms de fichiers
  • couper, coller / joindre – commandes utiles pour isoler les champs des fichiers texte et ajouter de nouvelles données dans les 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 à d’autres bases aujourd’hui qui peuvent être aussi utiles en 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 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!

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *

Comment forcer le redémarrage de n’importe quel iPhone ou iPad

Comment prendre une bonne photo de portrait

Comment prendre une bonne photo de portrait