Bonjour à tous,
Voici mon soucis, j'ai un fichier sous fc5 et je voudrais par une commande simple supprimer les deux derniers caractères de chaque ligne de mon fichier.
Je vous remercie par avance
Bonjour à tous,
Voici mon soucis, j'ai un fichier sous fc5 et je voudrais par une commande simple supprimer les deux derniers caractères de chaque ligne de mon fichier.
Je vous remercie par avance
Je crois que sed pourra être utile, le tout étant de formaliser une expression régulière englobant les deux derniers caractères d'une ligne.
Pour t'aider, comme d'habitude : man sed et man re_format. Pour la deuxième page, dans le cas où elle ne serait pas dans les man de ta distribution, consulte là ici : http://www.openbsd.org/cgi-bin/man.c...86&format=html
j'aime bien Ruby pour ce genre de snippet :Envoyé par DragVinny
(l'idéal serait de passer la longueur à stripper en argument…)
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13 #!/usr/bin/env ruby begin file = File.new( ARGV[0], "r" ) rescue file = STDIN end while line = file.gets # -3 to take the \n into account... puts line[0,line.length-3] end
Si chaque ligne à une longueur différente tu peux faire :
Si chaque ligne à la même longueur un simple :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8 #!/usr/bin/sh while read ligne do longueur=`echo $ligne|wc -m` num=`echo $(( $longueur - 2 ))` echo $ligne|cut -c1-$num >> fic_dest done < test1.txt
Code : Sélectionner tout - Visualiser dans une fenêtre à part cut -c-1-$num mon_fichier >> fic_dest
oui cela fonctionnera sans doute aussi,Envoyé par herzleid
mais quand on remarque que echo et cut sont des exécutables à part entière et non des commandes internes du shell…
(/bin/echo et /usr/bin/cut)
on peut s'interroger : lancer 4 process à chaque ligne du fichier source traité : n'est-ce pas un "peu" lourd ?
Faut faire le test. QUi est le plus rapide ? L'appel à echo et à cut ou à l'interpréteur rubis ?
Les paris (troll) sont ouverts. DragVinny oublis pas de précéder les commandes d'un time que l'on puisse avoir la conclusion de ce thriller :p
Ben moi je parie sur sed....Envoyé par herzleid
![]()
Partager