Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1549 connectés 

  FORUM HardWare.fr
  Linux et OS Alternatifs
  Codes et scripts

  [Bash] Questions utilisation cut paste et grep

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

[Bash] Questions utilisation cut paste et grep

n°1416340
victoria33
Posté le 21-03-2018 à 17:45:47  profilanswer
 

Bonjour,  
 
je me pose deux questions à propos des commandes bash... J'ai beau chercher sur des forums / regarder le man des commandes, il y a des choses que je ne comprend pas:
 
Question 1:
 
J’ai un fichier avec 5 colonnes ( 1 2 3 4 5 ) je souhaiterai créer un autre fichier avec 2 colonnes, inversées : ( 3 2 )
Avec cette commande, j’obtiens bien les deux colonnes mais dans l’ordre initial ( 2 3 ) :

Citation :

$ cut -d " " -f 3,2 fichier.txt


 
Je pense qu’il faudrait combiner avec la commande paste, mais je ne sais pas comment m’y prendre…
J'ai essayé la commande suivante, qui est de toute évidence fausse...

Citation :

$ paste -d " " (cut -d " " -f 3 fichier.txt) (cut -d " " -f 2 fichier.txt)


 

Question 2:

 
J’ai un fichier avec différentes données dont à chaque ligne la mention « ADM » ou « AJ »
Je souhaiterai avoir avec une commande permettant d’obtenir un nouveau fichier, avec noté dedans :
ADM nombre_Admis
AJ nombre_Ajournés
exemple :  
ADM 16
AJ 8
 
Pour avoir le nombre d’admis OU le nombre d’ajournés, j’utilise ces deux commandes, qui fonctionnent :

Citation :

$ sort fichier.txt | grep -c 'ADM' > nouveau.txt
$ sort fichier.txt | grep -c 'AJ' > nouveau.txt


Mais impossible de combiner pour avoir en même temps le nombre d’admis ET le nombre d’ajournés…
De plus je souhaiterai ajouter devant « ADM » ou « AJ » comme dans l’exemple. Comme ces deux mentions correspondent à la ligne 10, je pensais utiliser cette commande :

Citation :

$ cut -d " " -f 10 fichier.txt


 
Mon problème serait donc de combiner ces trois commandes en une seule… or je n’y parviens pas (et je ne suis pas certaine que la commande « cut » soit la plus adaptée).
 
Voilà, ce sont deux questions "bêtes" j'en ai conscience mais je débute et je bloque totalement...  :(  
 
En vous remerciant d'avance pour de potentielles réponses!  :)  
 

mood
Publicité
Posté le 21-03-2018 à 17:45:47  profilanswer
 

n°1416357
roondar
Posté le 21-03-2018 à 22:00:28  profilanswer
 

awk est ton ami ;)

n°1418329
alokkin
tourner 7 fois la langue ...
Posté le 08-05-2018 à 19:12:13  profilanswer
 

Un truc comme ca devrait fonctionner :
 
1°)  
awk -F" " '{print $3" "$2}' fichier.txt
 
2°)  
awk -F" " '($1 == "ADM" ){nbadm+=1}($1 == "AJ" ){nbaj+=1}END{print "nombre d admis    = "nbadm"\nnombre d ajournes = "nbaj}' admis_ajournes.txt  
nombre d admis    = 3
nombre d ajournes = 2


---------------
Burn the museum, wipe your ass with the Mona Lisa, this way, at least, God will know your name.

Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Linux et OS Alternatifs
  Codes et scripts

  [Bash] Questions utilisation cut paste et grep

 

Sujets relatifs
[Bash] Substitution d'une lettreMonter disque dur synology sur le bash windows 10
[Code et Script][bash] test et argumentsslinuxjjhj
[débutants] Questions sur LinuxOS pour utilisation home cinema
bash : wtf ?Newbie Linux : Installation Dropbox user comment ?
Serveur sur WSL(Bash Ubuntu @Windows) ou VM/Debian 
Plus de sujets relatifs à : [Bash] Questions utilisation cut paste et grep


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR