【发布时间】:2016-10-04 13:41:20
【问题描述】:
我创建了一个生成 HTML 代码的脚本。 在脚本的最后,我需要通过将表格中的某些单词加粗来突出显示它们。
所以我需要在代码中替换每个实例 单词 经过 单词 要么 单词
当然,WORD 存储在一个变量 $CODE 中,这让这变得更加困难。
不幸的是,我尝试使用 sed 命令没有成功。
sed -e 's/$CODE/<b>$CODE</b>/g' page.html > newpage.html
我也尝试使用双引号,在 / 之前使用转义字符,引号和双引号的许多组合,使用 |作为分隔符,总是没有成功。 如果你们中的任何人能指出我的解决方案,我会非常高兴。
PS : 也尝试使用 awk ...但使用变量它真的很痛苦 ...
编辑:这是我为大家提供帮助的确切代码。 code_list.txt 包含代码描述行列表。
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²
【问题讨论】:
-
小精度,如果我回显命令,变量翻译得很好。但是命令没有执行。
-
edit 您的问题包括简洁、可测试的样本输入和预期输出。包括那些你认为很难处理的用例,如果你的“WORD”可以包含任何非字母字符,那么也描述+显示这些用例。还包括像“the”和“There”这样的情况,这样我们就可以看到如何处理部分和区分大小写的匹配。最后 - 不要对非导出的变量名使用全大写,以避免与内置和其他导出的变量名发生冲突。