我需要使用正则表达式查找一些文本并为其上色。正则表达式是我脚本的参数。
因此,我可以针对此参数执行此操作:
./color_skript.sh 'hello'
程序:
word=$1
var=$(echo -e $line | grep $word | sed -e "s/${word}/${color}${word}${endColor}/g")
它有效,并且在每一行中都找到“ hello”。但是,当我有此参数时:
./color_skript.sh 'hel[a-z]*\>'
它应该找到每个以“ hel”开头并以任何字母结尾的单词。例如:“ helaa”,“ helab”,“ helzz” ...等。
我该怎么做?
第二${word}
之后sed
应该是一个&
。该&
告诉sed
呼应先前匹配的模式。因此,如果$word
为is 'hel[a-z]*\>'
,则&
在输出中为“ hello”(例如)sed
。
另外,我认为您不需要-e
after sed
。
word=$1
var=$(echo -e $line | grep $word | sed "s/${word}/${color}&${endColor}/g")
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句