A voir également:
- Problème substitution avec ed /old/new/[gp]
- Trouver un lieu avec coordonnées gps - Guide
- Supprimer windows old - Guide
- Outlook new - Guide
- Internet explorer portable old version ✓ - Forum Webmastering
- Bolet new york ✓ - Forum Excel
2 réponses
zipe31
Messages postés
36402
Date d'inscription
dimanche 7 novembre 2010
Statut
Contributeur
Dernière intervention
27 janvier 2021
6 407
9 mars 2012 à 13:24
9 mars 2012 à 13:24
Salut,
Il suffit juste de matcher le "motif" voulu et d'opérer une substitution sur le chemin (en changeant le délimiteur par défaut, le slash (/) par un caractère quelconque, ici le point-virgule (;)) :
;-))
Il suffit juste de matcher le "motif" voulu et d'opérer une substitution sur le chemin (en changeant le délimiteur par défaut, le slash (/) par un caractère quelconque, ici le point-virgule (;)) :
$ cat plop /home/moi/documents/fich.txt /home/moi/documents/toto.jpg /home/moi/documents/tata.pdf $ ed -s plop <<<$'/toto.jpg/ s;/.*/;/mnt/brol/archive/;\n,p' /home/moi/documents/fich.txt /mnt/brol/archive/toto.jpg /home/moi/documents/tata.pdf $
;-))
Salut et merci,
Mais je n'ai pas bien compris pourquoi tu changes le délimiteur par défaut par le ; ?
En fait ce que je cherche à obtenir c'est
Mais je n'ai pas bien compris pourquoi tu changes le délimiteur par défaut par le ; ?
En fait ce que je cherche à obtenir c'est
/home/moi/documents/fich.txt /mnt/brol/archive/-home-moi-documents-toto.jpg /home/moi/documents/tata.pdf
zipe31
Messages postés
36402
Date d'inscription
dimanche 7 novembre 2010
Statut
Contributeur
Dernière intervention
27 janvier 2021
6 407
9 mars 2012 à 15:00
9 mars 2012 à 15:00
Mais je n'ai pas bien compris pourquoi tu changes le délimiteur par défaut par le ; ?
Juste pour ne pas être embêté avec trop d'anti-slash et de slash indigestes ;-))
Juste pour ne pas être embêté avec trop d'anti-slash et de slash indigestes ;-))
$ ed -s plop <<<$'/toto.jpg/ s|/|-|g\n/toto/s|.*|/mnt/brol/archive/&|\n,p' /home/moi/documents/fich.txt /mnt/brol/archive/-home-moi-documents-toto.jpg /home/moi/documents/tata.pdf $
zipe31
Messages postés
36402
Date d'inscription
dimanche 7 novembre 2010
Statut
Contributeur
Dernière intervention
27 janvier 2021
6 407
10 mars 2012 à 11:09
10 mars 2012 à 11:09
C'est la syntaxe propre à la redirection (<<<). Ça sert à faire interpréter à "ed" ce qui se trouve entre les quotes simples.
Pour toi ce qui importe c'est juste la syntaxe qui se trouve entre ces quotes :
Pour toi ce qui importe c'est juste la syntaxe qui se trouve entre ces quotes :
/toto.jpg/ s|/|-|g\n/toto/s|.*|/mnt/brol/archive/&|\n
Ok je vois le $' ' interprète certains caractères comme le \n
Donc tu fais bien 2 commandes de substitution. |/|-|g et .*|/mnt/brol/archive/&|
Hélas c'est inapplicable pour moi car je l'utilise avec pax : pax -s "/old/new/g"
Je peux préciser plusieurs -s, mais il s'arrête à la première substitution réussie
C'est pour ça que je cherche à le faire en une seule fois, et que je suis venu chercher de l'aide ici
:-(
Donc tu fais bien 2 commandes de substitution. |/|-|g et .*|/mnt/brol/archive/&|
Hélas c'est inapplicable pour moi car je l'utilise avec pax : pax -s "/old/new/g"
Je peux préciser plusieurs -s, mais il s'arrête à la première substitution réussie
C'est pour ça que je cherche à le faire en une seule fois, et que je suis venu chercher de l'aide ici
:-(