Replace a string in shell script using a variable

后端 未结 10 947
被撕碎了的回忆
被撕碎了的回忆 2020-11-22 05:18

I am using the below code for replacing a string inside a shell script.

echo $LINE | sed -e \'s/12345678/\"$replace\"/g\'

but it\'s getting

10条回答
  •  再見小時候
    2020-11-22 05:58

    If you want to interpret $replace, you should not use single quotes since they prevent variable substitution.

    Try:

    echo $LINE | sed -e "s/12345678/\"${replace}\"/g"
    

    assuming you want the quotes put in. If you don't want the quotes, use:

    echo $LINE | sed -e "s/12345678/${replace}/g"
    

    Transcript:

    pax> export replace=987654321
    pax> echo X123456789X | sed "s/123456789/${replace}/"
    X987654321X
    pax> _
    

    Just be careful to ensure that ${replace} doesn't have any characters of significance to sed (like / for instance) since it will cause confusion unless escaped. But if, as you say, you're replacing one number with another, that shouldn't be a problem.

提交回复
热议问题