Contenu | Rechercher | Menus

Annonce

Si vous avez des soucis pour rester connecté, déconnectez-vous puis reconnectez-vous depuis ce lien en cochant la case
Me connecter automatiquement lors de mes prochaines visites.

À propos de l'équipe du forum.

#1 Le 05/09/2023, à 07:48

viviane2023

[Résolu] Awk extraction de colonne pour plusieurs fichiers

Bonjour,

je voudrais que mon script awk extrait des colonnes de plusieurs fichiers .csv (donnees1.csv, donnees2.csv, donnees3.csv...) et crée pour chaque fichier .csv un fichier résultat  (result1.txt, result2.txt, result3.txt...), j'utilise cette ligne de commande

awk 'BEGIN{FS=OFS="\t"} {if ($9<$10) print $1,$2,$3,$4,$9,$10,$11,"1"; else print $1,$2,$3,$4,$9,$10,$11,"2";}' donnees*.csv > result*.txt

mais celle-ci crée un seul fichier result1.txt avec tout les résultats

J'ai besoin d'aide

Dernière modification par viviane2023 (Le 06/09/2023, à 07:16)

Hors ligne

#2 Le 05/09/2023, à 09:01

MicP

Re : [Résolu] Awk extraction de colonne pour plusieurs fichiers

Bonjour

Essaye comme ça :

awk 'BEGIN{FS=OFS="\t"} {nomFich=FILENAME; gsub(/[^0-9]/,"",nomFich); nomFich="result"nomFich".txt"; if ($9<$10) ajout="1"; else ajout="2"; print $1,$2,$3,$4,$9,$10,$11,ajout > nomFich;}' donnees*.csv

Dernière modification par MicP (Le 05/09/2023, à 11:07)

Hors ligne

#3 Le 05/09/2023, à 11:07

viviane2023

Re : [Résolu] Awk extraction de colonne pour plusieurs fichiers

Super ça marche.
Merci MicP:D

Hors ligne

#4 Le 05/09/2023, à 11:09

MicP

Re : [Résolu] Awk extraction de colonne pour plusieurs fichiers

Désolé, j'ai modifié la ligne de commande juste au moment où tu postais ton message,
mais bon, c'est sensiblement la même en fait.

Merci pour le retour smile

Dernière modification par MicP (Le 05/09/2023, à 11:10)

Hors ligne

#5 Le 05/09/2023, à 15:00

Watael

Re : [Résolu] Awk extraction de colonne pour plusieurs fichiers

celle-ci crée un seul fichier result1.txt

parce que ce fichier est pré-existant, sinon tu aurais une erreur due au développement impossible de result*.txt.

et, en l'état, il ne s'agit pas d'un script awk, mais d'une ligne de commande awk.
un script awk ce serait :

#!/usr/bin/awk -f

BEGIN{
    FS=OFS="\t"
} 
{
    print $1,$2,$3,$4,$9,$10,$11, $9<$10?1:2 >"result"gensub("[^0-9]","","g",FILENAME)".txt"
}

appelé ainsi:

$ ./monScript.awk donnees*.csv

Dernière modification par Watael (Le 05/09/2023, à 15:36)


Connected \o/
Welcome to sHell. · eval is evil.

Hors ligne

#6 Le 06/09/2023, à 07:02

viviane2023

Re : [Résolu] Awk extraction de colonne pour plusieurs fichiers

Super avec ça j'ai l'embarras du choix.

Au fait comment on fait pour signaler que le problème a été résolu

Hors ligne

#7 Le 06/09/2023, à 07:09

xubu1957

Re : [Résolu] Awk extraction de colonne pour plusieurs fichiers

Bonjour,

Pour rajouter [Résolu] au début du titre, en éditant ta discussion, il faut utiliser le bouton Modifier au bas de ton premier message.

Merci wink


Conseils pour les nouveaux demandeurs et pas qu'eux
Important : Pensez à passer vos sujets en [Résolu] lorsque ceux-ci le sont, au début du titre en cliquant sur Modifier sous le premier message, et un bref récapitulatif de la solution à la fin de celui-ci. Merci.                   Membre de Linux-Azur

Hors ligne

#8 Le 06/09/2023, à 07:10

MicP

Re : [Résolu] Awk extraction de colonne pour plusieurs fichiers

En éditant ton premier message de ce fil de discussion,
tu verras, en haut dans la fenêtre d'édition, une zone d'édition qui te permetra d'éditer le titre de ce fil
en remplaçant :

Awk extraction de colonne pour plusieurs fichiers

par :

[Résolu] Awk extraction de colonne pour plusieurs fichiers

Dernière modification par MicP (Le 06/09/2023, à 07:13)

Hors ligne