Récupérer les 3 premiers caractères du nom du

Fermé
szcz2007 - 15 oct. 2007 à 10:04
jipicy Messages postés 40842 Date d'inscription jeudi 28 août 2003 Statut Modérateur Dernière intervention 10 août 2020 - 15 oct. 2007 à 11:59
Bonjour,

Il faut que j'écrive un script en SHELL.
comment je peux faire pour récupérer les 3 premiers caractères du nom du fichier que je dois lire.

8 réponses

jipicy Messages postés 40842 Date d'inscription jeudi 28 août 2003 Statut Modérateur Dernière intervention 10 août 2020 4 894
15 oct. 2007 à 10:09
Salut,
$ var="bonjour"
$ echo ${var:0:3}
bon
;-))
1
lami20j Messages postés 21331 Date d'inscription jeudi 4 novembre 2004 Statut Modérateur, Contributeur sécurité Dernière intervention 30 octobre 2019 3 567
15 oct. 2007 à 11:02
Salut,

attention où tu mets les accolades

echo {$var:0:1} - incorrect, c'est ${}
echo ${var:0:1} 
--
lami20j
0
szcz2007 Messages postés 3 Date d'inscription lundi 15 octobre 2007 Statut Membre Dernière intervention 15 octobre 2007
15 oct. 2007 à 11:08
Au secours !!
dans le script j'ai :
var="papa"
echo ${var:0:1}


résultat
${var:0:1}: bad substitution
0
jipicy Messages postés 40842 Date d'inscription jeudi 28 août 2003 Statut Modérateur Dernière intervention 10 août 2020 4 894
15 oct. 2007 à 11:13
Re-

Essaye alors :
expr "$var" : '\(...\)'
Tu veux récupérer 1 ou 3 caractères ?
Affiches-nous ton script en entier s'il te plaît, merci.
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
szcz2007 Messages postés 3 Date d'inscription lundi 15 octobre 2007 Statut Membre Dernière intervention 15 octobre 2007
15 oct. 2007 à 11:28
Voici mon script, je dois afficher les 3 caractères mais j'ai compris le principe...par contre j'ai pas tout compris pour la ligne de commande expr "$var" : '\(...\)' ==> ?
J'ai eu 30 mn de formation sur le shell...alors je suis un peu perdu...
merci pour votre aide...


if [ $nbfichier -ne 0 ]
then
for Fic in `ls R*`
do
echo "fichier trouvé ==>$Fic"
var="papa"
echo ${var:0:3}
exit 0
done
else
echo "Fichier $Fic NON PRESENT"
echo "nb fichier : $nbfichier"
exit 16
fi
0
dubcek Messages postés 18718 Date d'inscription lundi 15 janvier 2007 Statut Contributeur Dernière intervention 22 mars 2024 5 615
15 oct. 2007 à 11:57
mettre
#!/bin/bash
en première ligne
0
jipicy Messages postés 40842 Date d'inscription jeudi 28 août 2003 Statut Modérateur Dernière intervention 10 août 2020 4 894
15 oct. 2007 à 11:59
[tmpfs]$ ls -1

Robert.txt
Roger.txt
Romain.txt
rose.txt
Roxane.txt
roxy.txt

[tmpfs]$ for fich in $(ls R*);do echo "${fich} => ${fich:0:3}";done

Robert.txt => Rob
Roger.txt => Rog
Romain.txt => Rom
Roxane.txt => Rox

[tmpfs]$
;-))
0
szcz2007 Messages postés 3 Date d'inscription lundi 15 octobre 2007 Statut Membre Dernière intervention 15 octobre 2007
15 oct. 2007 à 10:58
j'ai un peu de mal :
j'ai du louper un truc
j'ai écrit dans mon script :
var="papa"
echo {$var:0:1}

résultat = {papa:0:1}
-1