supposons
a='ab'
je veux avoir ba
Si je veux intervertir ces 2 caracteres, est-ce que je peux utiliser la commande xp de vi qui les échange (dans sed/awk/xxx)?
Hélas je suis avec ksh, donc celui qui me répond d'utiliser rev -> pas possible :-(
merci
# methode bourrin ...
Posté par Pol' uX (site web personnel) . Évalué à 3.
Adhérer à l'April, ça vous tente ?
# intervertir 2 caractères
Posté par JJD . Évalué à 3.
Si on suppose que ta variable n'a que deux caractères, il y a plusieurs méthodes.
Si ton ksh est suffisamment récent, cela devrait fonctionner :
a='ab'
b=${a#?}${a%?}
Sinon, avec sed :
a='ab'
b=`echo $a | sed "s/\(.\)\(.\)/\2\1/"`
Il existe certainement d'autres solutions avec awk, ed, peut-être vi...
On lance un concours ?
[^] # Re: intervertir 2 caractères
Posté par JJD . Évalué à 4.
Sinon, la première solution devrait fonctionner même sur des systèmes un peu ancien (testée sur un AIX 4.3) et présente l'avantage de ne pas faire d'appel à des binaires externes à ksh.
A+
JJD
[^] # Re: intervertir 2 caractères
Posté par palm123 (site web personnel) . Évalué à 3.
Pour rev, c'est dommage, mais sur ce site, il est interdit d'installer plein de trucs en prod ->
pas de lsof, rev, screen...
et grep n'a pas les options -A et -B pour avoir les lignes avant et après la recherche dun motif
la préhistoire quoi :-)
ウィズコロナ
[^] # Re: intervertir 2 caractères
Posté par NeoX . Évalué à 1.
avec mon grep (ver 2.5.1), chez moi j'ai l'option -n X
pour afficher les X lignes avant et apres le motif.
du coup la ligne devient
grep -n X motif fichier
Suivre le flux des commentaires
Note : les commentaires appartiennent à celles et ceux qui les ont postés. Nous n’en sommes pas responsables.