Contenu | Rechercher | Menus

Annonce

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"

Connected \o/
Welcome to sHell. · eval is evil.

En 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


KDE Neon 64bits
Tous mes softs (MKVExtractorQt, HizoSelect, HizoProgress, Qtesseract, Keneric, Services menus...) sont sur github

Hors ligne