Linux cut
commande pour supprimer les sections de chaque ligne de sortie de bash. cut
commande fournit un mécanisme pour filtrer l’extrait de colonne/texte à partir d’un fichier ou la sortie standard. Des exemples détaillés peuvent être trouvés ci-dessous., Nous avons le texte suivant fichier nommé fruits.txt
apple 1 good grape 5 bad banana 2 not bad
cut OPTION... ...
Sélectionner la Colonne
Couper commande offre la possibilité de sélectionner une colonne spécifiée selon le nombre de caractères pour toutes les lignes. Ici, nous allons imprimer toutes les lignes 3 caractères ligne par ligne à la console. Cela ne fera qu’imprimer un caractère unique.,
$ cut -c3 fruits.txt
Sélectionner la Colonne De la Plage de Caractères
Dans l’exemple précédent, nous avons imprimé un caractère unique pour le terminal. Nous pouvons également imprimer plusieurs caractères sur la console en spécifiant la plage de caractères comme ci-dessous. Nous pouvons voir que l’index des caractères commence à 1.,
$ cut -c1-6 fruits.txt
sélectionner une colonne en utilisant la Position de départ
Une autre fonctionnalité utile de Cut est de spécifier uniquement la position de départ jusqu’à la fin.
$ cut -c3- fruits.txt
sélectionner une colonne en utilisant la Position de fin
Nous pouvons imprimer la plage du début à la position spécifiée en spécifiant uniquement la position de fin., Cela supposera la position de départ comme 1
$ cut -c-3 fruits.txt
sélectionner un champ unique
le champ est une partie du texte délimitée par des caractères spécifiques comme l’espace, la tabulation, la double virgule, etc. Nous pouvons sélectionner du texte avec des numéros de champ. Par défaut, le délimiteur de champ est tab. Notre texte est déjà fourni onglet pour la délimitation. Dans cet exemple, nous allons sélectionner 3. champ.,
$ cut -f3 fruits.txt
Sélectionner Plusieurs Champs
Comme nous le faisons dans les personnages que l’on peut également spécifier le champ de gamme. Nous sélectionnerons les noms et les nombres de fruits avec la commande suivante.
$ cut -f1-2 fruits.txt
L’exemple suivant sélectionne plus d’un champ, un par un, pas par des plages.,
$ cut -f1,2,3 fruits.txt
le Dernier Champ
l’Un des plus populaires usages de cut
impression de la dernière zone. Le problème est que le nombre de champs peut changer en fonction du texte et nous ne pouvons pas spécifier le dernier champ uniquement en utilisant la commande cut
. L’exemple suivant utilise la commanderev
pour obtenir le dernier champ.,
$ cat fruits.txt | rev | cut -f1 | rev
Sélectionner les Champs à Inclure Spécifié de Caractères
Par défaut cut
n’ont pas la possibilité d’exclure des lignes selon les caractères, mais grep
peut facilement être utilisé pour mettre en œuvre cette fonctionnalité., Nous ne sélectionnez les lignes contiennent des app
$ grep "app" fruits.txt | cut -f1-2
Sélectionnez les Champs à l’Exception de Caractères Spécifié
On peut inverser l’exemple précédent et d’enlever les lignes. Nous allons supprimer les lignes contenant app
, puis imprimer les colonnes de 1 à 2 .,
$ grep -v "app" fruits.txt | cut -f1-2
Spécifier le Délimiteur
Le séparateur est utilisé pour diviser les champs. Par défaut, l’onglet est utilisé comme délimiteur. Mais il peut être spécifié avec l’option-d
comme ci-dessous. Suivant l’exemple, nous utilisons la balise :
comme délimiteur parce que le passwd
fichier utilise. Ensuite, nous voulons seulement afficher les noms d’utilisateur qui réside dans le champ 1.,
$ cut -d: -f1 /etc/passwd
Imprimer à l’Exception des Champs
Comme nous le voyons déjà les champs peuvent être imprimés sous forme de fourchettes trop. Nous pouvons également imprimer en excluant les champs. Cela imprimera tous les champs de changement de nom. En suivant l’exemple, nous pouvons vouloir imprimer tous les champs sauf 2.
Modifier le Délimiteur
Texte peut avoir des délimiteurs par défaut. Dans certaines situations, nous pouvons vouloir changer le délimiteur lors de l’impression sur la console., --output-delimiter
option can be used for this operation. The following example will change the tab delimiter to the comma.
$ cut -f1,2,3 --output-delimiter="," fruits.txt