Utilisation sed avec delimiteurs numérique dans variables
Résolu
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
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
-
Contributeurhello
utiliser des guillemetssed "$vardebut,$varfind" /monfichier
entre ' les variables ne sont pas résolues -
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?) -
Contributeuravec {
sed "${vardebut},${varfind}d" /monfichier -
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$ -
Contributeurattention, c'est ${var} et non {$var}
-
ça tourne !
Merci Beaucoup dubcek