[awk] comment inverser une chaine d'octet?

comment inverser une chaine d'octet? [awk] - Codes et scripts - Linux et OS Alternatifs

Marsh Posté le 31-08-2004 à 19:56:01    

g un fichier du type :
 

0123 4567 8901 2345


 
et j'aimerai avoir :

3210 7654 1098 5432


je connais un peu sed et je pense pas qu'il sache le faire...
mais awk par contre ???
 
kkun a une idee?
 
merci


Message édité par Naamah le 31-08-2004 à 19:59:13

---------------
Gestion de collection Magic 100% gratuite -> www.magiccollec.com
Reply

Marsh Posté le 31-08-2004 à 19:56:01   

Reply

Marsh Posté le 14-09-2004 à 16:19:17    

essaie perl!

Reply

Marsh Posté le 14-09-2004 à 19:42:28    

je ne sais pas utiliser les tableaux, le mieux serait que tu utilises ca ....
 
par exemple en C ca donnerai :
tmp=t[15];
t[15]=t[0];
t[0]=tmp;
.....
et ainsi de suite en utilisant une variable pour les indices des tableaux

Reply

Marsh Posté le 15-09-2004 à 16:14:38    

avec perl ça donne:
perl -ane 'print map { reverse($_)." " } @F,"\n" input > output
Tu remplaces input et output par ton fichier à convertir et ton fichier résultat respectivement. Tu peux aussi le faire inplace.

Reply

Marsh Posté le 15-09-2004 à 22:23:02    

rev et tac sont tes amis

Reply

Marsh Posté le 16-09-2004 à 11:28:21    

oui mais garder l'ordre des mots et n'inverser que le contenu des mots n'est pas possible avec rev
 
01234 5678
 
donne 8765 4321 avec rev
et il voulait
4321 8765
 
et tac... ça s'applique pas dans notre cas

Reply

Marsh Posté le 25-09-2004 à 19:41:57    

y a t il forcement un espace entre 1234 5678 ? alors
NOMFILE="non_du_fichier"
set -- $NOMFILE
for i in *
do
  rev $i
  ........
done
 
à peu prés !!!!!

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed