shell脚本sed命令如何使用变量替换掉包含指定字符串的整行

有这么一个文本:
bf9c57a69985163a97249f613214f0b5 zsoelim
341be106bfb4a34f08a3431c3182e507 zip
553c4862a08bbcd33b710b24094d817f zenity
02d45afe153d3b06a186672c0bf96b3c xzless
假如我的脚本中有一个变量:
zip="c9844e7242d7f0f46d6d7725318a7088 zipcloak"
我如何使用sed命令达到<用zip变量的值替换掉上面文本含有zip这三个字符的行>

sed "s/zip/$zip/g" file
sed双引号可以识别变量
温馨提示:答案为网友推荐,仅供参考
第1个回答  2020-03-18
#先将包含指定字符串的整行打印到变量tmp
tmp=$(sed -n '/${zip}/p' 文本名)
#然后将文本中这一整行字符串替换为你想要修改的字符串
sed -i 's/${tmp}/${zip}/g' 文本名
相似回答