


Comment imprimer une colonne spécifique à partir d'un fichier utilisant AWK?
Jul 04, 2025 am 01:50 AMPour imprimer une colonne spécifique à l'aide de awk, utilisez la syntaxe awk '{print $ n}' nom de fichier où n est le numéro de colonne à partir de 1. Pour les fichiers avec des délimiteurs non blancs, utilisez l'option -f ou définissez FS dans un bloc de début. Plusieurs colonnes peuvent être imprimées en les répertoriant séparées par des virgules ou des séparateurs personnalisés. Des conditions peuvent également être ajoutées aux lignes de filtre avant d'imprimer. Cette approche offre une flexibilité pour divers formats de données et les besoins de filtrage.
Pour imprimer une colonne spécifique à partir d'un fichier utilisant awk
, il vous suffit de spécifier le numéro de colonne à l'aide du symbole $
suivi du numéro de champ. Par exemple, si vous souhaitez imprimer la deuxième colonne d'un fichier, vous utiliseriez awk '{print $2}' filename
. Cela fonctionne bien pour les fichiers texte de base où les colonnes sont séparées par l'espace blanc (espaces ou onglets), qui est le comportement par défaut dans awk
.
Syntaxe et utilisation de base
La syntaxe générale pour l'impression d'une colonne spécifique est:
awk '{print $ n}' nom de fichier
Où N
est le numéro de colonne que vous souhaitez imprimer. Les colonnes sont numérotées à partir de 1. Donc $1
fait référence à la première colonne, $2
la seconde, etc.
Voici à quoi ?a ressemble dans la pratique:
- Pour imprimer la première colonne:
awk '{print $ 1}' data.txt
- Pour imprimer la troisième colonne:
awk '{print $ 3}' data.txt
Cette méthode suppose que votre fichier d'entrée utilise Whitespace comme séparateur de champ. Si votre fichier utilise autre chose, comme des virgules ou des colons, continuez à lire - il existe également un moyen de gérer cela.
Gérer différents délimiteurs
Si votre fichier utilise un délimiteur autre que Whitespace (comme une virgule ou un c?lon), vous pouvez dire awk
quoi utiliser avec l'option -F
.
Par exemple, si vous avez un fichier CSV ( data.csv
) avec des champs séparés par des virgules:
Nom, age, emplacement Alice, 30 ans, New York Bob, 25 ans, San Francisco
Vous imprimeriez la deuxième colonne comme ceci:
awk -f ',' '{print $ 2}' data.csv
Ou pour un fichier séparé du c?lon (comme /etc/passwd
):
awk -f ':' '{print $ 1}' / etc / passwd
Vous pouvez également définir le séparateur de champ à l'intérieur du script en utilisant BEGIN{FS=":"}
:
awk 'begin {fs = ":"} {print $ 1}' / etc / passwd
Cela vous donne une flexibilité en fonction du format de votre fichier d'entrée.
Impression de plusieurs colonnes
Parfois, vous ne voudrez peut-être pas seulement une colonne - peut-être que vous souhaitez imprimer deux colonnes ou plus ensemble. Vous pouvez le faire en les répertoriant dans l'instruction PRINT, séparés par des virgules ou des espaces.
Par exemple:
awk '{print $ 1, $ 3}' data.txt
Cela imprimera les première et troisième colonnes, avec un espace entre les deux. Si vous voulez un séparateur personnalisé (comme un onglet ou autre chose), vous pouvez l'ajouter directement:
awk '{print $ 1 "\ t" $ 3}' data.txt
De cette fa?on, vous contr?lez exactement à quoi ressemble la sortie.
Un autre cas commun: Parfois, les gens veulent imprimer toutes les colonnes sauf une. C'est un peu plus délicat et implique généralement une boucle à travers les champs. Mais pour la plupart des besoins quotidiens, la sélection des colonnes que vous voulez fonctionne bien.
Filtrage des lignes avant d'imprimer
Et si vous souhaitez uniquement imprimer une colonne pour les lignes qui correspondent à une certaine condition? C'est possible aussi.
Dans awk
, vous pouvez ajouter une condition avant la commande d'impression. Par exemple, pour imprimer la deuxième colonne uniquement lorsque la première colonne est "Apple":
awk '$ 1 == "Apple" {print $ 2}' data.txt
Ou pour imprimer la cinquième colonne uniquement si le quatrième champ est supérieur à 100:
awk '$ 4> 100 {print $ 5}' data.txt
Cela rend awk
puissant au-delà de la simple extraction de colonnes - il devient également un outil de filtrage rapide.
Donc, fondamentalement, l'impression d'une colonne spécifique avec awk
est simple une fois que vous connaissez la bonne syntaxe et comment ajuster les délimiteurs et les conditions. Ce n'est pas compliqué, mais savoir comment l'adapter à différents formats et besoins aide vraiment.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Outils d'IA chauds

Undress AI Tool
Images de déshabillage gratuites

Undresser.AI Undress
Application basée sur l'IA pour créer des photos de nu réalistes

AI Clothes Remover
Outil d'IA en ligne pour supprimer les vêtements des photos.

Clothoff.io
Dissolvant de vêtements AI

Video Face Swap
échangez les visages dans n'importe quelle vidéo sans effort grace à notre outil d'échange de visage AI entièrement gratuit?!

Article chaud

Outils chauds

Bloc-notes++7.3.1
éditeur de code facile à utiliser et gratuit

SublimeText3 version chinoise
Version chinoise, très simple à utiliser

Envoyer Studio 13.0.1
Puissant environnement de développement intégré PHP

Dreamweaver CS6
Outils de développement Web visuel

SublimeText3 version Mac
Logiciel d'édition de code au niveau de Dieu (SublimeText3)

En tant qu'administrateur système, vous pouvez vous retrouver (aujourd'hui ou à l'avenir) dans un environnement où Windows et Linux coexistent. Ce n'est un secret pour personne que certaines grandes entreprises préfèrent (ou doivent) gérer certains de leurs services de production dans Windows Boxes et

Dans Linux Systems, 1. Utilisez la commande IPA ou HostName-I pour afficher la propriété intellectuelle privée; 2. Utilisez curlifconfig.me ou curlipinfo.io/ip pour obtenir une adresse IP publique; 3. La version de bureau peut afficher IP privé via les paramètres système, et le navigateur peut accéder à des sites Web spécifiques pour afficher la propriété IP publique; 4. Les commandes communes peuvent être définies sous forme d'alias pour un appel rapide. Ces méthodes sont simples et pratiques, adaptées aux besoins de visualisation IP dans différents scénarios.

Construit sur le moteur V8 de Chrome, Node.js est un environnement d'exécution JavaScript open source et axé sur les événements con?u pour la construction d'applications évolutives et les API backend. NodeJS est connu pour être léger et efficace en raison de son modèle d'E / S non bloquant et

LinuxCanrunonModesthardwarewithSpecificminimumRequirements.A1GHZProcessor (x86orx86_64) est ensemble, avec-corecpureComend.r.R AmshouldBeatleast512MBForCommand-lineUseor2gbfordesktopenvironments.

écrit en C, MySQL est une source ouverte, multiplateforme, et l'un des systèmes de gestion de base de données relationnels les plus utilisés (RDMS). Il fait partie intégrante de la pile de lampes et est un système de gestion de base de données populaire dans l'hébergement Web, l'analyse des données,

Ubuntu a longtemps été un bastion d'accessibilité, de vernis et de puissance dans l'écosystème Linux. Avec l'arrivée d'Ubuntu 25.04, nommé ?Plucky Puffin?, Canonical a à nouveau démontré son engagement à fournir un

MongoDB est une base de données NOSQL à haute performance et hautement évolutive de documents construite pour gérer le trafic intense et de grandes quantités de données. Contrairement aux bases de données SQL traditionnelles qui stockent les données dans les lignes et les colonnes dans les tables, MongoDB structure les données dans un J

écrit en PHP, Magento est une plate-forme de commerce électronique à source ouverte populaire et polyvalente qui offre aux entreprises un panier en ligne. Il tire parti de divers cadres PHP tels que Symfony et Laminas pour améliorer sa fonctionnalité et sa convivialité. Mage
