Utilisation sed avec delimiteurs numérique dans variables

Résolu/Fermé
'Lex Messages postés 16 Date d'inscription samedi 22 mars 2014 Statut Membre Dernière intervention 3 avril 2014 - 22 mars 2014 à 22:12
'Lex Messages postés 16 Date d'inscription samedi 22 mars 2014 Statut Membre Dernière intervention 3 avril 2014 - 23 mars 2014 à 11:30
Bonjour,

Voici mon pb sur un fichier zsh:

vardebut=0
varfin=4

sed '$vardebut,$varfind' /monfichier


évidemment ça ne marche pas

Quelqu'un saurait il comment faire?

Merci

6 réponses

dubcek Messages postés 18550 Date d'inscription lundi 15 janvier 2007 Statut Contributeur Dernière intervention 3 octobre 2022 5 558
23 mars 2014 à 10:04
hello
utiliser des guillemets
sed "$vardebut,$varfind" /monfichier
entre ' les variables ne sont pas résolues
0
'Lex Messages postés 16 Date d'inscription samedi 22 mars 2014 Statut Membre Dernière intervention 3 avril 2014
Modifié par 'Lex le 23/03/2014 à 10:49
Merci, mais,
le problème c'est que le 'd' après varfin, c'est l'option de suppression de sed qui est de la forme:
sed '0,4d' /monfichier avec 0 la première ligne de l'intervalle et 4 la dernière.

comment séparer le d de la variable? (quel symbole?)
0
dubcek Messages postés 18550 Date d'inscription lundi 15 janvier 2007 Statut Contributeur Dernière intervention 3 octobre 2022 5 558
23 mars 2014 à 11:01
avec {
sed "${vardebut},${varfind}d" /monfichier
0
'Lex Messages postés 16 Date d'inscription samedi 22 mars 2014 Statut Membre Dernière intervention 3 avril 2014
23 mars 2014 à 11:24
voici mon script exact avec la correction que tu me suggère:

------------------------
#/bin/zsh
echo "entrer nom site "
read nomsite
intervalle=2
numline=$(grep -n $nomsite".local" /Users/alexandre/Sites/httpd-vhosts.conf | cut -d ":" -f1)
numlineEnd='expr $numline + $intervalle'
numlineBeg='expr $numline - $intervalle'
sed "{$numlineBeg},{$numlineEnd}d" /Users/alexandre/Sites/httpd-vhosts.conf
echo $numlineBeg
echo $numlineEnd

-----------

et voici l'exécution:

MacBook-Pro-de-alexandre:Desktop alexandre$ ./essai.sh
entrer nom site
site1
sed: 1: "{13},{17}d": command } expects up to 0 address(es), found 1
13
17
MacBook-Pro-de-alexandre:Desktop alexandre$
0

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

Posez votre question
dubcek Messages postés 18550 Date d'inscription lundi 15 janvier 2007 Statut Contributeur Dernière intervention 3 octobre 2022 5 558
23 mars 2014 à 11:28
attention, c'est ${var} et non {$var}
0
'Lex Messages postés 16 Date d'inscription samedi 22 mars 2014 Statut Membre Dernière intervention 3 avril 2014
Modifié par 'Lex le 23/03/2014 à 11:31
ça tourne !

Merci Beaucoup dubcek
0