Sed: Apprentissage des scripts Shell à l'aide de la commande Sed Terminal

Sed: Apprentissage des scripts Shell à l'aide de la commande Sed Terminal

Sed: Apprentissage des scripts Shell à l'aide de la commande Sed Terminal

La commande "sed" dans les systèmes d'exploitation libres de type GNU / Linux, c'est une commande très polyvalente, car à son tour Il est considéré comme un éditeur de texte orienté "flow" au lieu de "interactif" comme les éditeurs typiques, comme il accepte un fichier ou une entrée standard comme entrée, traite ensuite chaque ligne et le résultat est envoyé à la sortie standard. C'est-à-dire, SED (Stream EDitor) permet de modifier le contenu des différentes lignes d'un fichier à partir d'une série de commandes ou d'un fichier de commandes.

Généralement, la commande «sed» est utilisée comme filtre, car il lit chaque ligne de votre entrée de données, puis effectue les actions demandées qui sont généralement lues, extraites, modifiées et affichées ou enregistrées. Bien que sa puissance soit telle que De plus, il nous permet de manière confortable, de supprimer des lignes, d'enregistrer ou de remplacer des chaînes de caractères dans les lignes d'un fichier.

Introduction à la commande "sed"

Déjà dans d'autres publications précédentes dans DesdeLinux nous avons parlé et montré des exemples d'utilisation de ladite commande, comme: Comment supprimer des lignes spécifiques d'un fichier ... y Avec Terminal: Utilisation d'expressions régulières II: remplacements, donc cette fois nous verrons directement des exemples un peu plus avancés et tout aussi pratiques en l'utilisant.

Fondamentalement, la commande «sed» a la syntaxe suivante:

sed comandos_sed archivo

"Command_sed" correspond à une ou plusieurs spécifications sur ce qu'il faut faire des lignes lues "archiver".

Une utilisation plus étendue nous laisse avec la syntaxe suivante:

sed [-ns] '[direccion] instruccion argumentos'

Où:

Format d'utilisation de la commande SED

Exemples pratiques

Liste des fichiers / dossiers dans un chemin

Ligne de commande utile qui peut être utilisée pour lister le contenu d'un chemin X spécifié, puis détecter / compter / filtrer un élément recherché et indiquer une action ultérieure à effectuer.

ls -l | awk '{ print $NF }' | sed 1d

exemple:

Exemple 1: commande SED - Scripting Shell

Cette autre variante utilisant la commande "sed" est très utile:

find /opt/MilagrOS/file-apps/fondos_pantalla/ -type f | sed 's/^\.\///g' | xargs -n 1 basename

Exemple 4: commande SED pour le script shell

Créer une séquence de nombres

Afficher à l'écran ou enregistrer dans un fichier une séquence numérique (ou toute autre entrée) créée mais de manière horizontale (linéaire) et non verticale pouvant être lue ultérieurement pour d'autres processus.

seq 100|tr '\n' ' '|sed 's, $,\n,g'

Exemple 2: commande SED pour le script shell

Le même exemple peut être fait en combinant la commande «la soif" avec "Printf" comme indiqué ci-dessous:

printf '%s ' {1..100}|sed 's/ $/\n/'

Exemple 3: commande SED pour le script shell

Supprimer les fichiers avec des exclusions

Parcourir un chemin d'accès au système de fichiers à la recherche de modèles de fichiers à exclure, puis supprimer le reste du contenu. Très utile pour un nettoyage précis et soigné.

find /opt/MilagrOS/file-apps/fondos_pantalla/ -type f | sed -e '/.*\.txt$/d' -e '/.*\.exe$/d' | xargs rm

Exemple 5: commande SED pour Shell_Scripting

Créer une adresse MAC virtuelle

Cette étape peut être utile pour la sécurité informatique ou les tâches de protection lors de la navigation sur des sites dangereux ou de l'exécution de tâches de piratage.

MAC=`(date; cat /proc/interrupts) | md5sum | sed -r 's/^(.{10}).*$/\1/; s/([0-9a-f]{2})/\1:/g; s/:$//;'` ; echo $MAC

Le même effet peut être obtenu en utilisant la commande "sed" en conjonction avec d'autres commandes, comme indiqué ci-dessous:

openssl rand -hex 6 | sed 's/\(..\)/\1:/g; s/.$//'
od -An -N10 -x /dev/random | md5sum | sed -r 's/^(.{10}).*$/\1/; s/([0-9a-f]{2})/\1:/g; s/:$//;'
od /dev/urandom -w6 -tx1 -An|sed -e 's/ //' -e 's/ /:/g'|head -n 1

exemple:

Exemple 7: commande SED pour le script shell

Modifier temporairement l'invite du terminal

Cela peut nous aider à insérer temporairement des paramètres dans notre invite qui peuvent nous être utiles pendant que nous effectuons une activité spéciale. Dans cet exemple, nous ne changerons que la façon dont l'invite est affichée.

export PS1="C:\$( pwd | sed 's:/:\\\\\\:g' )\\> "

Exemple 8. Commande SED pour le script Shell

Gérer la sortie de la commande "ps"

Commande de commande très pratique pour permettre le formatage de la sortie de la commande «ps», c'est-à-dire ce qui est obtenu à partir du Terminal Process Manager.

sudo ps -e -o pcpu,cpu,nice,state,cputime,args --sort pcpu | sed "/^ 0.0 /d"

exemple:

Exemple 9: commande SED pour le script shell

Cela peut être appliqué pour les processus en fonction du pourcentage de mémoire consommée:

sudo ps -e -o pmem,nice,state,cputime,args --sort pmem | sed "/^ 0.0 /d"

Ces exemples de lignes de commande utilisant la commande "sed" j'espère que vous le trouverez très utile. Et ils servent à être utilisés directement depuis la console ou indirectement en les insérant dans un script (tâche automatisée).

Dans le prochain article sur les scripts Shell, nous explorerons d'autres commandes.

Si vous souhaitez en savoir un peu plus sur la commande "sed" visitez ce lien "Tutoriel et bref guide pour Unix et Linux"Ou"Utilisation basique»Et si vous souhaitez en savoir plus sur Shell Scripting dans notre propre blog, vous pouvez consulter nos autres publications sur le sujet, en cliquant ici: Script DesdeLinux.


Laisser un commentaire

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

*

*

  1. Responsable des données: Miguel Ángel Gatón
  2. Finalité des données: Contrôle du SPAM, gestion des commentaires.
  3. Légitimation: votre consentement
  4. Communication des données: Les données ne seront pas communiquées à des tiers sauf obligation légale.
  5. Stockage des données: base de données hébergée par Occentus Networks (EU)
  6. Droits: à tout moment, vous pouvez limiter, récupérer et supprimer vos informations.