Contenu | Rechercher | Menus

Annonce

Si vous rencontrez des soucis à rester connecté sur le forum (ou si vous avez perdu votre mot de passe) déconnectez-vous et reconnectez-vous depuis cette page, en cochant la case "Me connecter automatiquement lors de mes prochaines visites".
Test de l'ISO d'Ubuntu francophone : nous avons besoin de testeurs pour la version francophone d'Ubuntu 14.04. Liens et informations ici.

Attention, une faille de sécurité dans bash a récemment été rapportée, il est recommandé de mettre à jour son système (plus de détails)

#1 Le 08/05/2013, à 10:54

sab113

utiliser plusieurs commandes shell en même temps? [Résolu]

Bonjour à tous,


J'amerais savoir comment procéder pour pouvoir récupérer à partir d'un fichier txt certaines lignes et certaines colonnes en même temps.

J'ai un fichier avec ce format:

<DOC>    titreA00.txt
0|C|TERME1|0,0000
1|C|TERME2|0,0000
2|C|TERME3|0,0000

<DOC>    titreA01.txt
0|C0282423|TERME4|0,0000
1|C0000877|TERME5|0,0000

<DOC>    titreA02.txt
0|C0012634|TERME6|0,0000
1|C0031208|TERME7|0,0000

<DOC>    titreA03.txt
0|C0004083|TERME8|0,0000
1|C0887950|TERME9|0,0000
2|C0030567|TERME10|0,0000
3|C0007806|TERME11|0,0000
4|C0002716|TERME12|0,0000

Et je voudrais récupérer les lignes commençant avec la balise <DOC> mais également toutes les colonnes numéro 3.

Soit je fais :

 awk -F "|" '{print $3}' fichier.txt

pour récupérer toutes les colonnes numéro 3
et

sed -n '/<DOC>/p' fichier.txt  

Mais je ne sais pas comment faire pour pouvoir utiliser ces deux commandes en même temps et avoir un résultat ur un seul fichier comme suit

<DOC>    titreA00.txt
TERME1
TERME2
TERME3

<DOC>    titreA01.txt
TERME4
TERME5

<DOC>    titreA02.txt
TERME6
TERME7

<DOC>    titreA03.txt
TERME8
TERME9
TERME10
TERME11
TERME12

Je vous remercies à l'avance.]

Dernière modification par sab113 (Le 08/05/2013, à 11:43)

Hors ligne

#2 Le 08/05/2013, à 11:28

Postmortem

Re : utiliser plusieurs commandes shell en même temps? [Résolu]

Salut,

awk -F '|' '/<DOC>/ {print} {print $3}' fichier

Edit :
Pour éviter les lignes vides et en un peu plus court :

awk -F '|' '/<DOC>/;$3 {print $3}' fichier

Re-edit :
Pour garder les lignes vides s'il y en a à l'origine :

awk -F '|' '/<DOC>/ || /^$/;$3 {print $3}' fichier

Dernière modification par Postmortem (Le 08/05/2013, à 11:38)


Trusty Tahr (64 bits), Athlon64 3800+, ATI Radeon HD4870

Mot' a dit : « Un Hellfest sans Slayer, c'est comme une galette-saucisse sans saucisse ! »

Hors ligne

#3 Le 08/05/2013, à 11:41

sab113

Re : utiliser plusieurs commandes shell en même temps? [Résolu]

Je te remercies Postmortem pour ton aide smile

Dernière modification par sab113 (Le 08/05/2013, à 11:41)

Hors ligne

Haut de page ↑