accueil > Traitement et recherche de texte > cut

cut : Extraire des champs ou des chaînes de caractères à partir de fichiers texte

La commande cut est utilisée pour extraire des champs (colonnes) ou des caractères (octets) spécifiques de chaque ligne d'un fichier texte ou de l'entrée standard et les envoyer vers la sortie standard. Elle est particulièrement utile pour extraire rapidement les informations nécessaires à partir de données textuelles structurées telles que les fichiers journaux ou les fichiers CSV, où l'option `-f` joue un rôle clé dans la sélection de champs spécifiques.

Aperçu

cut traite les données textuelles ligne par ligne pour extraire des champs, des caractères ou des plages d'octets spécifiés. Il est très efficace pour les tâches simples d'extraction et de transformation de données.

Caractéristiques principales

  • Extraction par champ (colonne) (option `-f`)
  • Extraction par caractère (octet) (options `-c`, `-b`)
  • Spécification d'un délimiteur personnalisé (option `-d`)
  • Exclusion des parties sélectionnées de la sortie (option `--complement`)

Options principales

La commande cut offre diverses options pour extraire des parties spécifiques du texte.

Méthodes d'extraction

Contrôle de la sortie

Commande générée :

Essayez de combiner les commandes.

Description:

`cut` Exécute la commande.

Essayez d'exécuter virtuellement les commandes avec l'IA en combinant les options ci-dessus.

Exemples d'utilisation

Voici des exemples de traitement de données textuelles à l'aide de la commande cut.

Extraire le premier et le troisième champ d'un fichier délimité par des virgules

echo "apple,banana,cherry,date" > data.csv
cut -d',' -f1,3 data.csv

Extrait le premier et le troisième champ du fichier data.csv en utilisant la virgule (`,`) comme délimiteur.

Extraire du premier au troisième champ d'un texte délimité par des espaces

echo "Field1 Field2 Field3 Field4" | cut -d' ' -f1-3

Extrait du premier au troisième champ d'un texte en utilisant l'espace comme délimiteur. (Note : pour plusieurs espaces, `awk` peut être plus approprié.)

Extraire les 5 premiers caractères d'un fichier

echo "Hello World" > sample.txt
cut -c1-5 sample.txt

Extrait les cinq premiers caractères de chaque ligne du fichier sample.txt.

Afficher le fichier `/etc/passwd` en excluant le nom d'utilisateur et le shell

cut -d: -f1,7 --complement /etc/passwd

Affiche les champs restants du fichier `/etc/passwd`, délimité par des deux-points (`:`), en excluant le premier champ (nom d'utilisateur) et le septième champ (shell).

Extraire les permissions de fichier et le nom de fichier de la sortie de `ls -l`

ls -l | tr -s ' ' | cut -d' ' -f1,9

Extrait le premier champ (permissions) et le neuvième champ (nom de fichier) de la sortie de la commande `ls -l`. Ici, `tr -s ' '` est utilisé pour traiter plusieurs espaces comme un seul espace.

Conseils et précautions

La commande cut est simple et rapide, mais elle ne peut pas gérer les expressions régulières ou la logique conditionnelle complexe. Pour un traitement de texte plus complexe, envisagez d'utiliser des outils comme `awk` ou `sed`.

Conseils principaux

  • **Traitement des délimiteurs d'espace :** Pour traiter des champs séparés par plusieurs espaces, `cut -d' '` ne reconnaît que les espaces uniques comme délimiteurs. Il peut être plus efficace d'utiliser `awk` comme ceci : `awk '{print $1, $3}'`.
  • **Pas de support des expressions régulières :** `cut` ne prend pas en charge les expressions régulières. Si vous avez besoin de faire correspondre des motifs, utilisez `grep` et `awk` ensemble.
  • **Utilisation des pipes :** `cut` est très puissant pour filtrer la sortie d'autres commandes. Il est souvent utilisé avec des pipes, comme dans `ls -l | cut -d' ' -f1,9`.
  • **Spécification de plages :** Dans les options `-f` ou `-c`, `N-` signifie de la N-ième position jusqu'à la fin, et `-N` signifie du début jusqu'à la N-ième position.

commandes associées

Des commandes fonctionnellement similaires ou souvent utilisées ensemble.


Commandes de la même catégorie