Messages : 4 294
Sujets : 868
Inscription : Dec 2016
Bonjour,
Comment on soustrait une sous-chaîne d'une chaîne en pdksh - le shell par défaut d'OpenBSD ?
En effet, ceci fonctionne sous ksh, mais pas pdksh :
Code :
subchain="${chain:0:7}"
Qui permet d'obtenir le 7 premiers caractères de la variable 'chain'...
En pdksh, cela retourne une erreur :
bad substitution
GPG:Fingerprint ed25519 : 072A 4DA2 8AFD 868D 74CF 9EA2 B85E 9ADA C377 5E8E
GPG:Fingerprint rsa4096 : 4E0D 4AF7 77F5 0FAE A35D 5B62 D0FF 7361 59BF 1733
Messages : 4 294
Sujets : 868
Inscription : Dec 2016
Bien sûr, coup qui me devient classique, c'est quand je demande que j'arrive enfin à trouver la solution... pfff !
Et, la solution est :
Code :
printf '%.7s\n' "$chain"
Un autre moyen :
Code :
echo "$chain" | awk '{ print substr($0, 0, 7) }'
----
Enjoy-ID!
Enjoy-IT!
GPG:Fingerprint ed25519 : 072A 4DA2 8AFD 868D 74CF 9EA2 B85E 9ADA C377 5E8E
GPG:Fingerprint rsa4096 : 4E0D 4AF7 77F5 0FAE A35D 5B62 D0FF 7361 59BF 1733
Messages : 285
Sujets : 11
Inscription : Oct 2017
Sinon,
Code :
echo "${chain%${chain#???????}}"
mais je préfère celle avec printf.
Messages : 4 294
Sujets : 868
Inscription : Dec 2016
Merci, mais bonjour le barbarisme...
mais je préfère mes deux solutions présentées... la tienne a le propos de présenter une autre manière de faire !
GPG:Fingerprint ed25519 : 072A 4DA2 8AFD 868D 74CF 9EA2 B85E 9ADA C377 5E8E
GPG:Fingerprint rsa4096 : 4E0D 4AF7 77F5 0FAE A35D 5B62 D0FF 7361 59BF 1733
Messages : 1 862
Sujets : 90
Inscription : Oct 2017
Messages : 285
Sujets : 11
Inscription : Oct 2017
(22-10-2017, 21:48:54)PengouinBSD a écrit : Merci, mais bonjour le barbarisme...
C'est pour ça que je préfère celle avec printf.
La seule raison pour laquelle le barbarisme a été posté est qu'il ne fait pas appel à un processus externe.
Sinon, quitte à utiliser un pipe, une solution avec
bat toutes les autres en terme de simplicité.