我创建了一个生成HTML代码的脚本。 在脚本的最后,我需要通过使它们变粗来突出显示表中的一些单词。
所以我需要在代码中替换每个实例 字 通过 WORD 的 要么 WORD
当然,WORD存储在变量$ CODE中以使这更加困难。
我试图不幸地使用sed命令但没有成功。
sed -e 's/$CODE/<b>$CODE</b>/g' page.html > newpage.html
我还尝试使用双引号,在/之前使用转义字符,引用和双引号的多种组合,作为分隔符,总是没有成功。 如果你们中的任何一个人能指出我的解决方案,我会非常感激。
PS:也尝试过使用awk ......但是有了变量,它真的很痛苦......
编辑:以下是我帮助大家的确切代码。 code_list.txt包含CODE描述行列表。
for y in code_list.txt
do
CODE=$(echo $y | cut -f1 -d-)
awk -v code="$CODE" '{if(match($0,code)){gsub(code,"<b>"code"</b>")}} 1' $SCRIPTS/html/daily_running_jobs.html > $SCRIPTS/html/daily_running_jobs_highlight.html
mv $SCRIPTS/html/daily_running_jobs_highlight.html $SCRIPTS/html/daily_running_jobs.html
done
B 2
答案 0 :(得分:2)
如果
,你的想法没有理由不起作用你使用&#34;而不是&#39;
$ CODE表达式中没有{{1>}(编辑:且没有换行)(@
替换/
)
@
您的解决方案的问题是引用,并且sed正则表达式分隔符sed -e "s@$CODE@<b>$CODE</b>@g" page.html > newpage.html
也在替换表达式中使用 ,如/
编辑 - 要从文件中替换的多个值
如果您有一个文件code_list.txt,其中所有要替换的字符串都是每行一个,请执行
</b>
答案 1 :(得分:0)
f
假设有一个变量 $ CODE
我们将它传递给awk变量,如果有匹配则替换