知道如何使用字符串:
string=1,2,3,4,5
并使用
number=4
把
<font color='red'><b></b></font>
围绕相应的数字,所以最终产品是:
newstring=1,2,3,<font color='red'><b>4</b></font>,5
感谢您的帮助
答案 0 :(得分:1)
您可以使用sed
:
result="$(sed "s|\($number\)|<font color='red'><b>\1</b></font>|" <<< "$string")"
一般表单是:sed s|search pattern|replace|
其中|
是一些唯一的分隔符(通常您使用/
但是已经在字符串中用于其他目的)。 \(…\)
是一个捕获组,用于捕获匹配项 - 在本例中为4
,可以通过\1
在替换字符串中使用。
答案 1 :(得分:0)
echo "$string" | sed "s#\(,\|^\)\($number\)\(,\|\$\)#\\1<font color='red'><b>\\2</b></font>\\3#g"
在大多数情况下应该足够好。
答案 2 :(得分:0)
Pure bash?
string="1,2,3,4,5"
num=4
re="(^|.+,)($num)(,.+|$)"
if [[ "$string" =~ $re ]]
then
echo -n "${BASH_REMATCH[1]}"
echo -n "<font>${BASH_REMATCH[2]}</font>"
echo "${BASH_REMATCH[3]}"
else
echo "$num doesn't match"
fi
将产生:
1,2,3,<font>4</font>,5
或perl:
echo '1,2,3,4,5' | num=4 perl -F, -lapE '$_=join ",",map{/\b$ENV{num}\b/? "<font>$_</font>":$_}@F'