A voir également:
- Syntaxe commande sed avancée
- Invite de commande - Guide
- Commande terminal mac - Guide
- Commande dism - Guide
- Commande chkdsk - Guide
- 'Ls' n’est pas reconnu en tant que commande interne - Forum Windows
7 réponses
dubcek
Messages postés
18744
Date d'inscription
lundi 15 janvier 2007
Statut
Contributeur
Dernière intervention
4 septembre 2024
5 617
23 nov. 2012 à 08:10
23 nov. 2012 à 08:10
hello
$ sed 's/[1235]/a/g;s/[679]/b/g' <<<"123456789" aaa4abb8b
zipe31
Messages postés
36402
Date d'inscription
dimanche 7 novembre 2010
Statut
Contributeur
Dernière intervention
27 janvier 2021
6 415
22 nov. 2012 à 19:06
22 nov. 2012 à 19:06
Salut,
Merci de poster un exemple concret AVANT => APRÈS de ce que tu veux exactement.
Merci de poster un exemple concret AVANT => APRÈS de ce que tu veux exactement.
ben par exemple j'ai des truc comme /251,/252,/253 et je veux remplacer par exemple /251 et 252 par a et /253 par b, le tout en une ligne, parceque j'ai beaucoup de chiffres, (c'est des caractères spéciaux en octal) et du coup je peux pas faire le sed äàéèëê/aaeeee
zipe31
Messages postés
36402
Date d'inscription
dimanche 7 novembre 2010
Statut
Contributeur
Dernière intervention
27 janvier 2021
6 415
22 nov. 2012 à 19:58
22 nov. 2012 à 19:58
C'est encore moins clair comme ça ;-(((
On en fait quoi du "4" et du "8" ???
Un exemple concret !
On en fait quoi du "4" et du "8" ???
Un exemple concret !
c'est sur que ç'est bien prise de tête. j'ai chopé un mal de tête hier je vous raconte pas. enfin dubcek merci infiniment ta réponse m'avance bien. ce qui serait parfait c'est si on pouvait écrire de 1 à 5, remplacer par a, sans avoir a tout saisir, (comme dans tr '[a-z]' '[A-Z]' ) car en vrai j'ai des caractères comme /251 , /252, /253 qui peuvent apparaitre aléatoirement (caractère spéciaux norme ISO-8859-1) que je doit remplacer par exemple de /340 à / 345, remplacer par a, de /350 à /353, par e, ect... bon après ta solution reste largement viable, mais bon la ligne qui fait une page ^^ en tout cas merci c'est déja ça.
zipe31
Messages postés
36402
Date d'inscription
dimanche 7 novembre 2010
Statut
Contributeur
Dernière intervention
27 janvier 2021
6 415
23 nov. 2012 à 14:08
23 nov. 2012 à 14:08
$ echo "/251,/252,/253, /351,/352,/353" | sed 's#25[1-3]#a#g;s#35[1-5]#e#g' /a,/a,/a, /e,/e,/e
dubcek
Messages postés
18744
Date d'inscription
lundi 15 janvier 2007
Statut
Contributeur
Dernière intervention
4 septembre 2024
5 617
23 nov. 2012 à 14:28
23 nov. 2012 à 14:28
ou avec des intervalles
$ r1=$(echo /25{1..5}); r1="("${r1// /|}")"; echo $r1 (/251|/252|/253|/254|/255) $ $ r2=$(echo /35{1..5}); r2="("${r2// /|}")"; echo $r2 (/351|/352|/353|/354|/355) $ $ echo "/251,/252,/253, /351,/352,/353" | sed -r "s+"${r1}"+a+g;s+"${r2}"+b+g" a,a,a, b,b,b $
dubcek
Messages postés
18744
Date d'inscription
lundi 15 janvier 2007
Statut
Contributeur
Dernière intervention
4 septembre 2024
5 617
Modifié par dubcek le 23/11/2012 à 15:21
Modifié par dubcek le 23/11/2012 à 15:21
dans quel cas ?
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
merci pour ces réponses rapides, mais malheuresement, j'ai essayé avec la syntaxe de dubcek :
var=$(echo $var | sed "s/[\340\341\342\343\344\345]/a/g;s/[\350\351\352\353]/e/g;")
elle est correcte syntaxiquement mais quand on met tout bah si on tombe sur une valeur (ex: /351) le remplacement ne s'effectue pas.
pour la solution de zipe, plus condensée, j'ai fé ça:
var=$(echo $var | sed "s#34[0-3]#a#g;s#35[0-3]#e#g") et la blague c'est que ça fé pareil, quand on tombe dessus ça ne remplace pas. par contre les /a,/a,/a, /e,/e,/e ne passent pas. j'ai donc fait sans.
var=$(echo $var | sed "s/[\340\341\342\343\344\345]/a/g;s/[\350\351\352\353]/e/g;")
elle est correcte syntaxiquement mais quand on met tout bah si on tombe sur une valeur (ex: /351) le remplacement ne s'effectue pas.
pour la solution de zipe, plus condensée, j'ai fé ça:
var=$(echo $var | sed "s#34[0-3]#a#g;s#35[0-3]#e#g") et la blague c'est que ça fé pareil, quand on tombe dessus ça ne remplace pas. par contre les /a,/a,/a, /e,/e,/e ne passent pas. j'ai donc fait sans.
dubcek
Messages postés
18744
Date d'inscription
lundi 15 janvier 2007
Statut
Contributeur
Dernière intervention
4 septembre 2024
5 617
23 nov. 2012 à 15:19
23 nov. 2012 à 15:19
[a-z] ne fonctionne qu'avec un seul caractère à la fois. moi je fabrique une séquence de ou : (aaa¦bbb¦ccc) aaa ou bbb ou ccc
sed "s/[\340\34 : ceci veut dire ou 3 ou 4 ou 0 etc
sed "s/[\340\34 : ceci veut dire ou 3 ou 4 ou 0 etc
en fait ça var=$(echo $var | sed "s#34[0-5]#a#g;s#35[1-5]#e#g") ça passe mais sans le \. quand je le met var=$(echo $var | sed "s#\34[0-5]#a#g;s#\35[1-5]#e#g") il me renvoie invalid back reference.
zipe31
Messages postés
36402
Date d'inscription
dimanche 7 novembre 2010
Statut
Contributeur
Dernière intervention
27 janvier 2021
6 415
23 nov. 2012 à 17:56
23 nov. 2012 à 17:56
Bon, on reprend !!!
Y'a quoi dans "$var" au départ ???
Y'a quoi dans "$var" au départ ???
zipe31
Messages postés
36402
Date d'inscription
dimanche 7 novembre 2010
Statut
Contributeur
Dernière intervention
27 janvier 2021
6 415
23 nov. 2012 à 18:15
23 nov. 2012 à 18:15
Ben justement, on peut avoir un exemple de ce mot au pif en iso 8859-1 ?