Commandes de base Linux - Ep15 - exercice avec corrigé
Table des matières:
- Comment utiliser la commande Couper
- Comment couper par champ
- Comment couper en fonction d'un délimiteur
- Comment compléter la sélection
- Comment spécifier un délimiteur de sortie
- Comment couper par octets et caractères
- Exemples de coupe
- Obtenez une liste de tous les utilisateurs
- Afficher les 10 commandes les plus fréquemment utilisées
- Conclusion
Il existe de nombreux utilitaires disponibles dans les systèmes Linux et Unix qui vous permettent de traiter et de filtrer les fichiers texte. Couper est un utilitaire de ligne de commande qui vous permet de couper des parties de lignes à partir de fichiers spécifiés ou de données canalisées et d'imprimer le résultat sur une sortie standard. Il peut être utilisé pour couper des parties d'une ligne par délimiteur, position d'octet et caractère.
Dans ce tutoriel, nous allons vous montrer comment utiliser la commande Linux cut à travers des exemples pratiques et des explications détaillées des options de coupe les plus courantes.
Comment utiliser la commande Couper
La syntaxe de la commande cut est la suivante:
cut OPTION……
Lorsque vous utilisez la commande cut, vous devez utiliser une et une seule des options suivantes:
-
-f
(--fields=LIST
) - Sélectionnez en spécifiant un champ, un ensemble de champs ou une plage de champs. Il s'agit de l'option la plus couramment utilisée.-b
(--bytes=LIST
) - Sélectionnez en spécifiant un octet, un ensemble d'octets ou une plage d'octets.-c
(--characters=LIST
) - Sélectionnez en spécifiant un caractère, un ensemble de caractères ou une plage de caractères.
Les autres options sont:
-
-d
(--delimiter
) - Spécifiez un délimiteur qui sera utilisé à la place du délimiteur "TAB" par défaut.--complement
- compléter la sélection. Lorsque vous utilisez cette option, cut affichera tous les octets, caractères ou champs à l'exception de ceux sélectionnés.-s
(--only-delimited
) - Par défaut, cut affichera toute ligne qui ne contient aucun caractère de délimitation. Lorsque vous utilisez cette option, la découpe n'imprimera pas les lignes ne contenant pas de délimiteurs.--output-delimiter
- La valeur par défaut est d'utiliser le délimiteur d'entrée comme délimiteur de sortie. Cette option vous permet de spécifier une chaîne de délimiteur de sortie différente.
La commande cut peut accepter zéro ou plusieurs noms de FICHIER d'entrée. Si aucun FICHIER n'est spécifié, ou lorsque FICHIER est
-
, cut lira l'entrée standard.
L'argument LIST passé aux options
-f
,
-b
et
-c
peut être un entier, plusieurs entiers séparés par des virgules, une plage d'entiers ou plusieurs plages d'entiers séparés par des virgules. Chaque plage peut être l'une des suivantes:
-
N
le Nième champ, octet ou caractère, à partir de 1.N-
du Nième champ, octet ou caractère, jusqu'à la fin de la ligne.NM
du Nième au Mième champ, octet ou caractère.-M
du premier au champ Mth, octet ou caractère.
Comment couper par champ
La commande Couper est principalement utilisée pour afficher les champs sélectionnés de chaque ligne de fichiers ou de l'entrée standard. Lorsqu'il n'est pas spécifié, le délimiteur par défaut est «TAB».
Dans les exemples ci-dessous, nous utiliserons le fichier suivant. Tous les champs sont séparés par des onglets.
test.txt
245:789 4567 M:4540 Admin 01:10:1980 535:763 4987 M:3476 Sales 11:04:1978
Pour afficher les 1er et 3e champs, vous utiliseriez:
cut test.txt -f 1, 3
245:789 M:4540 535:763 M:3476
Ou si vous souhaitez afficher du 1er au 4ème champ:
cut test.txt -f -4
245:789 4567 M:4540 Admin 535:763 4987 M:3476 Sales
Comment couper en fonction d'un délimiteur
Pour couper en fonction d'un délimiteur, utilisez l'option
-d
suivie du délimiteur que vous souhaitez utiliser.
Par exemple, pour afficher les 1er et 3e champs en utilisant «:» comme délimiteur, vous devez taper:
cut test.txt -d ':' -f 1, 3
245:4540 Admin 01 535:3476 Sales 11
Vous pouvez utiliser n'importe quel caractère unique comme délimiteur. Dans l'exemple suivant, nous utilisons le caractère espace comme délimiteur et imprimons le 2ème champ:
echo "Lorem ipsum dolor sit amet" | cut -d ' ' -f 2
Comment compléter la sélection
Pour compléter la liste des champs de sélection, utilisez l'option
--complement
. Cela imprimera uniquement les champs qui ne sont pas sélectionnés avec l'option
-f
.
La commande suivante imprime tous les champs sauf les 1er et 3e:
cut test.txt -f 1, 3 --complement
4567 Admin 01:10:1980 4987 Sales 11:04:1978
Comment spécifier un délimiteur de sortie
Pour spécifier le délimiteur de sortie, utilisez l'option
--output-delimiter
. Par exemple, pour définir le délimiteur de sortie sur
_
vous utiliseriez:
cut test.txt -f 1, 3 --output-delimiter='_'
Comment couper par octets et caractères
Avant d'aller plus loin, faisons une distinction entre octets et caractères.
Un octet fait 8 bits et peut représenter 256 valeurs différentes. Lorsque la norme ASCII a été établie, elle a pris en compte toutes les lettres, chiffres et symboles nécessaires pour travailler avec l'anglais. La table de caractères ASCII comprend 128 caractères et chaque caractère est représenté par un octet. Lorsque les ordinateurs ont commencé à devenir populaires à l'échelle mondiale, les entreprises technologiques ont commencé à introduire de nouveaux encodages de caractères pour différentes langues et pour les langues contenant plus de 256 caractères, un simple mappage 1 à 1 n'était pas possible. Cela conduit à différents problèmes tels que le partage de documents ou la navigation sur des sites Web et un nouveau standard Unicode capable de gérer la plupart des systèmes d'écriture du monde était nécessaire. UTF-8 a été créé pour résoudre ces problèmes. En UTF-8, tous les caractères ne sont pas représentés avec 1 octet. Les caractères peuvent être représentés avec 1 octet à 4 octets.
Dans les exemples suivants, nous utilisons le caractère
ü
qui prend 2 octets.
Utilisez l'option
-b
(
--bytes
) pour couper une section d'une ligne en spécifiant une position d'octet.
Sélectionnez le 5e octet:
echo 'drüberspringen' | cut -b 5
b
Sélectionnez les 5e, 9e et 13e octets:
echo 'drüberspringen' | cut -b 5, 9, 13
bpg
Sélectionnez la plage du 1er au 5e octet:
echo 'drüberspringen' | cut -b 1-5
drüb
Au moment de la rédaction de cet article, la version de cut intégrée à GNU coreutils n'a pas d'option pour couper par caractères. Lorsque vous utilisez l'option
-c
, cut se comporte de la même manière que lorsque vous utilisez l'option
-b
.
Exemples de coupe
La commande cut est généralement utilisée en combinaison avec d'autres commandes via la tuyauterie. Voici quelques exemples.
Obtenez une liste de tous les utilisateurs
La sortie de la commande
getent passwd
est passée à
cut
qui imprime le 1er fichier en utilisant
:
comme délimiteur.
getent passwd | cut -d ':' -f1
Afficher les 10 commandes les plus fréquemment utilisées
Dans l'exemple suivant, cut est utilisé pour supprimer les 8 premiers octets de chaque ligne de la sortie de la commande d'
history
.
history | cut -c8- | sort | uniq -c | sort -rn | head
Conclusion
Vous devriez maintenant avoir une bonne compréhension de l'utilisation de la commande Linux cut. Bien que très utile, la commande cut a certaines limites. Il ne prend pas en charge la spécification de plusieurs caractères comme délimiteur et il ne prend pas en charge plusieurs décimètres.
terminal de coupeCommande Echo sous Linux avec des exemples

La commande echo est l'une des commandes les plus élémentaires et les plus utilisées de Linux. Les arguments passés à echo sont imprimés sur la sortie standard.
Commande curl sous linux avec des exemples

Curl est un utilitaire de ligne de commande pour transférer des données depuis ou vers un serveur conçu pour fonctionner sans interaction avec l'utilisateur. Dans ce didacticiel, nous allons vous montrer comment utiliser l'outil curl à travers des exemples pratiques et des explications détaillées des options de curl les plus courantes.
Commande de date Linux avec des exemples

La commande date affiche ou définit la date système. Il est le plus souvent utilisé pour imprimer la date et l'heure dans différents formats et calculer les dates futures et passées.