将for循环中的变量替换为sed命令

时间:2014-01-30 13:01:47

标签: shell sed

我尝试了以下代码片段,但是sed命令替换了显式显示的$ var而不是当时var的thr值。我怎么解决这个问题?

for var in 01 02
do       
sed -e 's/%\\include{removeMe}/\\include{chapter_$var}/g'
done

2 个答案:

答案 0 :(得分:2)

尝试双引号:

sed -e "s/%\\include{removeMe}/\\include{chapter_$var}/g"

(更好的是,首先尝试使用简单示例的单/双引号。)

答案 1 :(得分:0)

for var in 01 02
 do       
   sed -e "/[%]\(\\include{\}removeMe}/ s//\1chapter_${var}}/g"
 done

使用后向引用和封装

但是如果var没有与你的样本中的文件名关联(所以sed是管道)一起使用它也可以替换(也因为01替换将消除找到02替换模式的任何可能性)

YourStream | sed -e 's/%\(\\include{\}removeMe}/\1chapter_01}/g'