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

  FORUM HardWare.fr
  Linux et OS Alternatifs
  Codes et scripts

  Aide pour une commande AWK (ou SED) (ou autre)

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

Aide pour une commande AWK (ou SED) (ou autre)

n°1096857
LeKeiser
Appelez moi Marcel.
Posté le 12-12-2008 à 11:56:46  profilanswer
 

Bonjour a tout le monde,
 
J'ai besoin d'aide svp :)
j'ai un fichier texte de 57Mo. Celui ci contient des informations sur des fichiers que je dois effacer sur un NAS.  
Chaque ligne de ce fichier comporte 9 champs, separes par une tabulation :
"NomFichier"     "Truc"     "Truc"     "Truc"     "Truc"     "Truc"     "Truc"     "Truc"     "CheminFichier"     "Truc"
 
je cherche une solution pour enlever enlever tous les champs "Truc" pour ne garder que les champs 1 et 8.
Apres, je chercherai une "moulinette" pour faire un couper/coller de ces fichiers sur un media de destination.
 
Me disais qu'il fallait utiliser un awk et la suite de la commande, mais je ne la connais pas des masses, pour ne pas dire pas du tout, et je dois avoir transferer ces fichiers avant la fin de l'apres-midi, donc assez peu de temps pour y arriver.
D'ou ma sollicitation a votre egard :)
 
Genre :  
 
awk {gsub("\"","",$2);gsub("\"","",$3);gsub("\"","",$4);gsub("\"","",$5);gsub("\"","",$6);gsub("\"","",$7);gsub("\"","",$9);} {print $0}' fichier_entree > fichier_sortie
 
mais je suis une grosse bouse, je l'avoue :cry: patapaÿ
Merci de votre aide (si vous le pouvez)
 
:hello:

Message cité 1 fois
Message édité par LeKeiser le 12-12-2008 à 12:04:14

---------------
"I intend to live the first half of my life.I don't care about the rest."Errol Flynn."The difference between genius and stupidity is that genius has its limits."Albert Einstein
mood
Publicité
Posté le 12-12-2008 à 11:56:46  profilanswer
 

n°1096859
zecrazytux
Posté le 12-12-2008 à 12:01:08  profilanswer
 

awk -F ' ' '{ print $1" "$8 }'
 
?


---------------
Blog photo/récits activités en montagne http://planetcaravan.net
n°1096863
LeKeiser
Appelez moi Marcel.
Posté le 12-12-2008 à 12:05:01  profilanswer
 

zecrazytux a écrit :

awk -F ' ' '{ print $1" "$8 }'
 
?


aussi simple que ca??
ca m'efface les champs 2->7 et le 9eme??


---------------
"I intend to live the first half of my life.I don't care about the rest."Errol Flynn."The difference between genius and stupidity is that genius has its limits."Albert Einstein
n°1096864
Le_Tolier
Hello IT ?
Posté le 12-12-2008 à 12:23:58  profilanswer
 

LeKeiser a écrit :


aussi simple que ca??
ca m'efface les champs 2->7 et le 9eme??


 
non ça t'affiche que les champs 1 et 8


---------------
Never f**k with your systems administrator. Why? Because they know what you do with all that free time! |?? | SAVE Jericho !
n°1096865
LeKeiser
Appelez moi Marcel.
Posté le 12-12-2008 à 12:36:08  profilanswer
 

j'ai essaye la commande
awk -F ' ' '{ print $1" "$8 }'
ca m'affiche les 3 premiere lettres du champs 1 (y compris les guillemets), et 8 premieres du 8 eme champs (+guillemet)
ca donne ca en fait :

 
Citation :

"AA "Archive



Message édité par LeKeiser le 12-12-2008 à 12:36:55

---------------
"I intend to live the first half of my life.I don't care about the rest."Errol Flynn."The difference between genius and stupidity is that genius has its limits."Albert Einstein
n°1096868
zecrazytux
Posté le 12-12-2008 à 12:54:21  profilanswer
 

cest parce que t'es champs contiennent des espaces
 
tu peux faire quelquechose comme ça:
 

Citation :


carole@littletroll:~$ echo '"Nom Fichier"     "Tr uc"     "Tr uc"     "Tr uc"     "Tr uc"     "Tr uc"     "T ruc "     "Tr uc"     "Chemin Fichier"     "Truc" ' | awk -F '"' '{ print "\""$2"\" \""$18"\"" }'
"Nom Fichier" "Chemin Fichier"
 


Message édité par zecrazytux le 12-12-2008 à 12:54:43

---------------
Blog photo/récits activités en montagne http://planetcaravan.net
n°1096872
LeKeiser
Appelez moi Marcel.
Posté le 12-12-2008 à 13:56:54  profilanswer
 

merci pour l'aide :jap:
 
j'ai lance cette commande :  

Citation :

awk -F ',' '{ print $1" "$10 }' /root/reessai.txt > test.txt


 
ca me recupere bien les 2 champs, entre guillemets
 
bon, gros probleme finalement : les chemins ont des espaces entre les mots :(
donc je peux avoir :
champs1 : Nom de Fichier
champs2 : Chemin Du Fichier La-bas tout loin
 
donc :  
"Nom De Fichier" "c:\Chemin Du Fichier La-Bas tout loin"
 
une fois les guillemets enleves, vais me retrouver avec non plus 2 champs, mais... 9 si je ne m'abuse... et pour concatener tout ca et les effacer :(


---------------
"I intend to live the first half of my life.I don't care about the rest."Errol Flynn."The difference between genius and stupidity is that genius has its limits."Albert Einstein
n°1096879
zecrazytux
Posté le 12-12-2008 à 14:08:35  profilanswer
 

LeKeiser a écrit :

merci pour l'aide :jap:
 
j'ai lance cette commande :  

Citation :

awk -F ',' '{ print $1" "$10 }' /root/reessai.txt > test.txt


 
ca me recupere bien les 2 champs, entre guillemets
 
bon, gros probleme finalement : les chemins ont des espaces entre les mots :(
donc je peux avoir :
champs1 : Nom de Fichier
champs2 : Chemin Du Fichier La-bas tout loin
 
donc :  
"Nom De Fichier" "c:\Chemin Du Fichier La-Bas tout loin"
 
une fois les guillemets enleves, vais me retrouver avec non plus 2 champs, mais... 9 si je ne m'abuse... et pour concatener tout ca et les effacer :(


 
regarde ma réponse au dessusk qu ise base sur le délimiteur " pour les champs.
ainsi, plus de probleme d'espaces


---------------
Blog photo/récits activités en montagne http://planetcaravan.net
n°1096920
Xavier_OM
Monarchiste régicide (fr quoi)
Posté le 12-12-2008 à 19:30:07  profilanswer
 

LeKeiser a écrit :


 
je cherche une solution pour enlever enlever tous les champs "Truc" pour ne garder que les champs 1 et 8.
Apres, je chercherai une "moulinette" pour faire un couper/coller de ces fichiers sur un media de destination.


 
 
man cut


---------------
Il y a autant d'atomes d'oxygène dans une molécule d'eau que d'étoiles dans le système solaire.

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

  Aide pour une commande AWK (ou SED) (ou autre)

 

Sujets relatifs
Commande smbclient : comment voir l'arborescence ?Syslinux + invite de commande DOS 98
Lyx et Latex : Besoin d'aide pour paufiner une mise en pageInstallation dual boot Ubuntu /windows demande d'aide
[bash] commande lors de l'ouverture d'un terminal[Ubuntu 8.04][Squid 2.6]Aide Proxy squid derrière un proxy squid
Spip : site planté, à l'aide !commande pour activer/désactiver son écran ??? HELP
[ VMware] Commande VMX 
Plus de sujets relatifs à : Aide pour une commande AWK (ou SED) (ou autre)


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