[Shell ksh] Retirer premier caractère

Résolu/Fermé
JOBiJOBa2 Messages postés 91 Date d'inscription mardi 13 mai 2008 Statut Membre Dernière intervention 23 avril 2009 - 30 mai 2008 à 14:05
zipe31 Messages postés 36402 Date d'inscription dimanche 7 novembre 2010 Statut Contributeur Dernière intervention 27 janvier 2021 - 25 avril 2019 à 18:39
Bonjour,
j'aimerai pouvoir retirer le signe # d'une chaine si il est présent.

Par exemple :
#abcd
#efgh
#ijkl
mnop

Résultat attendu :
abcd
efgh
ijkl
mnop

Merci d'avance
^^

Ps: je précise que je travaille en ksh
A voir également:

3 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 895
30 mai 2008 à 14:34
Salut,
jp@MDK:~/tmpfs ssh$ cat plop
#abcd
#efgh
#ijkl
mnop
jp@MDK:~/tmpfs ssh$ sed 's/^#//' plop
abcd
efgh
ijkl
mnop
jp@MDK:~/tmpfs ssh$
;-))
1
JOBiJOBa2 Messages postés 91 Date d'inscription mardi 13 mai 2008 Statut Membre Dernière intervention 23 avril 2009 5
30 mai 2008 à 14:38
C'est impeccable jipicy merci bien comme d'habitude.
0
wafiflicha Messages postés 38 Date d'inscription samedi 3 avril 2010 Statut Membre Dernière intervention 25 avril 2019
23 avril 2019 à 15:43
Bonjour JOB,

puis comment je peux mettre le résultat en dessous dans une variable (résultat 20)

line4="Salut 20"

echo ${line4} | sed 's/.\{6\}//'
0
zipe31 Messages postés 36402 Date d'inscription dimanche 7 novembre 2010 Statut Contributeur Dernière intervention 27 janvier 2021 6 407 > wafiflicha Messages postés 38 Date d'inscription samedi 3 avril 2010 Statut Membre Dernière intervention 25 avril 2019
23 avril 2019 à 16:49
Salut,

man bash (expansion des paramètres)

$ line4="Salut 20" 

$ echo "${line4:6}"
20

$ echo "${line4: -2}"
20
0
wafiflicha Messages postés 38 Date d'inscription samedi 3 avril 2010 Statut Membre Dernière intervention 25 avril 2019
25 avril 2019 à 16:40
Salut, je te remercie sur ton retour;

j'ai essayé le code suivant mes ça n'a pas fonctonné :

FIS="COUNT(*) ---------- 71"

if [[ ${FIS} | sed 's/.\{20\}//' == "71" ]]
then
echo "okey"

exit 1

else
echo "not okey"
exit 2
fi
0
lEprofSonDkon Messages postés 211 Date d'inscription jeudi 13 décembre 2018 Statut Membre Dernière intervention 8 octobre 2022 13 > wafiflicha Messages postés 38 Date d'inscription samedi 3 avril 2010 Statut Membre Dernière intervention 25 avril 2019
25 avril 2019 à 16:52
donc, on te montre comment faire, tu fais n'importe quoi d'autre (vraiment n'importe quoi : des pâtes pas cuites avec du pesto 8O), et tu te plains que "ça marche pas!" ?

et puis, quand la question change, on change de sujet, et donc on ouvre un nouveau sujet.
0
JOBiJOBa2 Messages postés 91 Date d'inscription mardi 13 mai 2008 Statut Membre Dernière intervention 23 avril 2009 5
30 mai 2008 à 14:35
Pour commencer j'arrive à récupérer tout sauf le premier caractère avec :

$$ line4="heeeeeeeeeeeeeeeeeeee"
$$ echo ${line4} | sed 's/.\{1\}//'
$$ eeeeeeeeeeeeeeeeeeee


Mais je n'arrive pas à récupérer le h.
^^
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 895
30 mai 2008 à 14:41
$ echo ${line4} | sed -n 's/\(.\).*/\1/p'
h
0
JOBiJOBa2 Messages postés 91 Date d'inscription mardi 13 mai 2008 Statut Membre Dernière intervention 23 avril 2009 5
30 mai 2008 à 14:46
Mais ça marche très bien aussi. Ta première solution est encore plus simple pour mon problème. J'allais cherché trop compliqué ou plutôt trop long.

Merci encore
A++
0