2
我有一个awk和sed的例子。两者似乎都使用相同的正则表达式,但输出不同。所以模式扩展必须有所不同。但我无法区别。谁能解释一下?sed和awk正则表达式有什么区别
$ echo "THE BEAR ATE THE FISH" |sed -e 's/[^ ]*(H|F)[^ ]*/<red>&/g'
THE BEAR ATE THE FISH
$ echo "THE BEAR ATE THE FISH" | awk 'gsub(/[^ ]*(H|F)[^ ]*/,"<red>&")'
<red>THE BEAR ATE <red>THE <red>FISH
$ sed --version
GNU sed version 4.1.5
$ awk --version
GNU Awk 3.1.5
似乎在sed中,而不是'(H | F)','[HF]'确实给出相同的输出。 – abasu 2013-04-23 12:56:21