Contenu | Rechercher | Menus

Annonce

DVD, clés USB et t-shirts Ubuntu-fr disponibles sur la boutique En Vente Libre

Si vous avez des soucis pour rester connecté, déconnectez-vous puis reconnectez-vous depuis ce lien en cochant la case
Me connecter automatiquement lors de mes prochaines visites.

À propos de l'équipe du forum.

#1 Le 12/11/2020, à 16:08

DonutMan75

[RESOLU] Shell et remplacement de paramètres

Hello,
une question toute bête.

J'ai :

echo $f
/chemin/vers/toto.cdf

Je veux garder toto mais
1 - remplacer /chemin/vers/ par /sortie/
2 - remplacer l'extension cdf par mat

Je sais faire ça en utilisant les remplacements de paramètres du shell

Remplacer les chemins

echo /sortie/"${f##*/}"

Remplacer l'extension

echo "${f%cdf}"mat

Ma question : est-il possible de combiner ces deux commandes dans une seule atomique ?
Quelque chose du genre :

echo /sortie/"${f##*/%cdf}mat ## NE MARCHE PAS"

Le man de bash n'indique rien mais je n'ai fait qu'une recherche rapide....

Merci d'avance smile

D.

Dernière modification par DonutMan75 (Le 12/11/2020, à 16:36)

Hors ligne

#2 Le 12/11/2020, à 16:27

Watael

Re : [RESOLU] Shell et remplacement de paramètres

salut,

oui, non, mais là, ça fait trop d'un coup. smile
tu ne peux le faire qu'en plusieurs fois :
- enlever la "racine", puis
- enlever l'extension

$ n=${f##*/}
$ echo "/sortie/${n%.}.mat"

Welcome to sHell. · eval is evil.

Hors ligne

#3 Le 12/11/2020, à 16:36

DonutMan75

Re : [RESOLU] Shell et remplacement de paramètres

Salut Watael,
merci pour ta réponse, je passe le sujet à résolu smile

D.

Hors ligne

#4 Le 12/11/2020, à 16:41

pingouinux

Re : [RESOLU] Shell et remplacement de paramètres

Bonjour,

$ f=/chemin/vers/toto.cdf

$ sed -r 's#.*/(.+)\.[^.]+#/sortie/\1.mat#' <<<"$f"
/sortie/toto.mat

Hors ligne

#5 Le 12/11/2020, à 19:12

Hizoka

Re : [RESOLU] Shell et remplacement de paramètres

Mais au final bien plus lent qu'en full bash smile

Hors ligne