GNU/Linux >> Tutoriels Linux >  >> Linux

Commande Linux cut expliquée avec 6 exemples

Présentation

La cut La commande est un utilitaire de ligne de commande qui vous permet de découper des sections d'un fichier spécifié ou de données canalisées et d'imprimer le résultat sur la sortie standard. La commande coupe des parties d'une ligne par champ, délimiteur, position d'octet et caractère.

Dans ce didacticiel, vous apprendrez ce que le cut est la commande et comment l'utiliser.

Prérequis

  • Un système exécutant Linux.
  • Accès à un terminal.

couper la syntaxe de la commande

La cut commande prend la syntaxe suivante :

cut [option] [file]

Options

Spécifier un [option] est nécessaire. Sinon, la commande génère une erreur. Les options disponibles sont décrites dans la section suivante.

Fichier

Pour [file] , entrez le nom du fichier que vous souhaitez traiter. Ne pas spécifier de nom de fichier indique la cut commande pour lire depuis l'entrée standard, auquel cas cut filtre le pipeline. Si vous spécifiez plusieurs noms de fichiers, le cut la commande concatène le contenu demandé.

couper les options de commande

La cut Les options de commande fournissent des instructions sur l'utilisation d'un délimiteur, le découpage par position d'octet, champ ou caractère. Utilisez une seule option pour chaque cut commande que vous exécutez.

Les options disponibles sont :

Option Description
-f (--fields=LIST) Sélectionner à l'aide d'un champ spécifié, d'un ensemble de champs ou d'une plage de champs.
-b (--bytes=LIST) Sélectionner en utilisant un octet spécifié, un jeu d'octets ou une plage d'octets.
-c (--characters=LIST) Sélectionner en utilisant un caractère spécifié, un jeu de caractères ou une plage de caractères.
-d (--delimiter) Utilisé pour spécifier un délimiteur à utiliser à la place du délimiteur TAB par défaut.
--complement Lorsqu'elle est spécifiée, cette option indique cut pour afficher tous les octets, caractères ou champs, sauf ceux sélectionnés.
-s (--only-delimited) Le paramètre par défaut est d'imprimer les lignes qui ne contiennent pas de caractères délimiteurs. Spécifier le -s l'option indique à cut de ne pas imprimer les lignes qui ne contiennent pas de délimiteurs.
--output-delimiter Par défaut, cut utilise le délimiteur d'entrée comme délimiteur de sortie. Spécifier le --output-delimiter L'option vous permet de spécifier un délimiteur de sortie différent.

Le -f , b , et -c les options prennent la LIST argument, qui est l'un des suivants :

  • Un entier N représentant un octet, un champ ou un caractère, à partir de 1.
  • Plusieurs nombres entiers, séparés par des virgules.
  • Une plage d'entiers.
  • Plusieurs plages d'entiers, séparés par des virgules.

Chaque plage peut être l'une des suivantes :

  • N- - Commence à partir de l'entier N (champ, octet ou caractère) jusqu'à la fin de la ligne.
  • N-M - De l'entier N jusqu'à l'entier M , inclus.
  • -M - Du premier champ, octet ou caractère, jusqu'au M spécifié champ, octet ou caractère.

Exemples de coupe Linux

Vous trouverez ci-dessous les cut les plus courantes cas d'utilisation des commandes.

Important : Faites attention aux paramètres régionaux de la sortie du fichier/de la commande que vous traitez. Couper des caractères ou des octets dans une langue autre que l'anglais peut produire une sortie incorrecte si le caractère en question est plus long qu'un octet.

Coupé par octets

Le -b L'option vous permet d'extraire des données en utilisant des octets. La syntaxe est :

cut -b [LIST] [file]

Le [LIST] argument sont les octets à extraire de chaque ligne de [file] .

Selon ce que vous voulez extraire, vous pouvez couper un seul octet, plusieurs octets ou une plage d'octets. Pour couper à partir d'un fichier spécifique, spécifiez le nom du fichier à la fin de la commande. Par exemple, nous utiliserons employees.txt pour tester :

Pour extraire le premier octet de chaque ligne d'entrée, exécutez :

cut -b 1 employees.txt

La commande imprime uniquement le premier octet de chaque ligne d'entrée de fichier.

L'exemple suivant montre comment diriger vers la commande who et extraire les 5 premiers octets de la sortie :

who | cut -b -5

Couper par caractères

Pour couper par caractères, spécifiez le -c option. La découpe par caractères est similaire à la découpe par octets, sauf que vous devez spécifier la position du caractère plutôt que la position de l'octet. La syntaxe est :

cut -c [LIST] [file]

Le [LIST] argument spécifie les caractères à extraire de chaque ligne de [file] .

Par exemple :

cut -c 10- employees.txt

La commande extrait tout du caractère 10 jusqu'à la fin de la ligne de chaque ligne de employees.txt . Les résultats sont imprimés en sortie standard.

L'exemple suivant montre le résultat lorsqu'un fichier n'est pas spécifié et cut lit son entrée à partir de l'entrée standard. Jetez un œil à who sortie de la commande :

La sortie indique qu'un utilisateur est actuellement connecté. Utilisez le cut commande pour extraire le nom d'utilisateur de l'utilisateur connecté du who sortie de la commande :

who | cut -c 1-8

Dans l'exemple ci-dessus, nous demandons cut pour extraire les caractères 1 à 8 de chaque ligne d'entrée. En cas de résultats multiples, triez les résultats en ajoutant la commande avec | sort .

De plus, utilisez cut pour extraire plusieurs caractères différents d'une ligne. Par exemple, affichez le nom d'utilisateur et l'heure de connexion de tous les utilisateurs connectés :

who | cut -c 1-8,18-

Couper en fonction d'un délimiteur

Si les champs ne sont pas séparés par le caractère de tabulation par défaut, utilisez le -d option pour spécifier un délimiteur différent. Cela signifie que le caractère spécifié après le -d L'option est considérée comme le séparateur dans les lignes. La syntaxe est :

cut -d[delimiter] [file]

A la place du [delimiter] argument, spécifiez le délimiteur souhaité. Vous pouvez utiliser n'importe quel caractère comme délimiteur. Utilisation de la cut commande pour extraire les champs d'un fichier sans spécifier le -d signifie que le délimiteur par défaut est le caractère de tabulation .

Dans l'exemple suivant, nous utilisons un espace blanc comme délimiteur et imprimons le deuxième champ :

echo "phoenixNAP is a global IT services provider" | cut -d ' ' -f 2

Couper par champs

Lorsque vous dirigez vers des commandes dont la sortie n'a pas de format fixe (par exemple, le who commande), le -c l'option n'est pas utile. Utiliser le -f l'option de séparation par champs est un meilleur choix dans ce cas.

Par exemple :

cut -f 2 employees.txt

Dans l'exemple ci-dessus, nous avons utilisé le -f option pour extraire le second champ du employees.txt fichier.

Pour couper des champs spécifiques d'un fichier, spécifiez un délimiteur différent. Par exemple, le /etc/passwd la sortie du fichier contient tous les utilisateurs de votre système, les numéros d'identification, le répertoire personnel, etc.

Les données dans /etc/passwd le fichier n'est pas aligné de la même manière que les données dans who sortie de commande. Ainsi, vous ne pouvez pas extraire tous les utilisateurs du système en vous appuyant sur le numéro de caractère.

Cependant, les champs du /etc/passwd fichier sont délimités par deux-points. Par conséquent, comptez le nombre de deux-points pour extraire les mêmes champs. Par exemple :

cut -d: -f1,6 /etc/passwd

La sortie renvoie chaque utilisateur du système et son répertoire personnel, correspondant respectivement aux champs 1 et 6.

Compléter une sélection

Le --complement L'option imprime tout sauf le caractère/octet/champ à la position spécifiée. Par exemple, la commande suivante imprime tous les champs sauf le premier et le troisième :

cut employees.txt -f 1 --complement

Spécifiez un délimiteur de sortie

Lors de la spécification de plusieurs caractères/octets/champs, le cut La commande concatène la sortie sans délimiteur. Spécifiez un délimiteur dans la sortie à l'aide de --output-delimiter option.

Par exemple, pour définir le délimiteur de sortie sur _ (trait de soulignement), utilisez :

cut employees.txt -f 1,3 --output-delimiter='_'

Linux
  1. Commande d'arrêt Linux expliquée avec des exemples

  2. Commande Linux nslookup expliquée avec des exemples

  3. Commande Linux Traceroute, expliquée avec des exemples

  4. Commande JQ sous Linux avec exemples

  5. cut Exemples de commandes sous Linux

La commande Wait sous Linux expliquée avec des exemples

Commande Tr sous Linux expliquée avec des exemples

w Commande expliquée avec des exemples sous Linux

La commande Linux Cat expliquée avec des exemples

Explication de la commande Linux tee (avec exemples)

La commande Linux csplit expliquée (avec des exemples)