Remplacer avec sed
Résolu
mosta
-
jipicy Messages postés 40842 Date d'inscription Statut Modérateur Dernière intervention -
jipicy Messages postés 40842 Date d'inscription Statut Modérateur Dernière intervention -
A voir également:
- Remplacer avec sed
- Remplacer disque dur par ssd - Guide
- Remplacer word - Guide
- Quel site pour remplacer coco - Accueil - Réseaux sociaux
- Fermeture de Coco : les internautes à la recherche d'un remplaçant - Accueil - Réseaux sociaux
- Remplacer carte graphique - Guide
8 réponses
$ cat plop 1023 LOGS blabla 12333 LOGS blabla 44 LOGS blabla 2580 LOGS blabla 1458 LOGS blabla 5 LOGS blabla $ sed '/^ / {s/^ [^[:alnum:]]*/&\n/;h;s/\n.*$//;s/ /0/g;x;s/.*\n//;x;G;s/\n//}' plop 01023 LOGS blabla 12333 LOGS blabla 00044 LOGS blabla 02580 LOGS blabla 01458 LOGS blabla 00005 LOGS blabla;-))
Salut,
On peut avoir un exemple concret de ce que tu veux exactement parce que les interprétations sont parfois délicates ;-))
On peut avoir un exemple concret de ce que tu veux exactement parce que les interprétations sont parfois délicates ;-))
J'ai un fichier dont les premiers champs sont parfois des espaces et je souhaiterai remplacer ceux là par des "0"
1023
12333
44
2580
1458
5
et je voudrais qu'il m'affiche aprés ma commande le résultat suivant:
01023
12333
00044
02580
01458
00005
Merci.
1023
12333
44
2580
1458
5
et je voudrais qu'il m'affiche aprés ma commande le résultat suivant:
01023
12333
00044
02580
01458
00005
Merci.
Re-
Si ce n'est que des espaces simples (hors tabulation), cette simple commande devrait suffire :
Si ce n'est que des espaces simples (hors tabulation), cette simple commande devrait suffire :
sed '/^ / s/ /0/g'Dans le cas d'espace et de tabulations il faut au-préalable convertir les tabulations en espaces (avec la commande "expand") :
$ var="AAA\n\tBBB\n CCC\n\t\tDDD\nEEE" $ echo -e "$var" AAA BBB CCC DDD EEE $ echo -e "$var" | expand | sed '/^ / s/ /0/g' AAA 00000000BBB 0CCC 0000000000000000DDD EEE $;-))
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
Ta commande est correct pour remplacer les espace par des 0 sed '/^ / s/ /0/g'
mais elle ne modifie pas que le premier espace du début de ligne, elle modifie tous les débuts de champs.
01023 0LOGS 0..
12333 0LOGS 0...
00044 0LOGS 0..
02580 0LOGS 0
01458 0LOGS 0
00005 0LOGS 0
mais elle ne modifie pas que le premier espace du début de ligne, elle modifie tous les débuts de champs.
01023 0LOGS 0..
12333 0LOGS 0...
00044 0LOGS 0..
02580 0LOGS 0
01458 0LOGS 0
00005 0LOGS 0