替换多行文本

Replace text in multiple lines

我尝试替换我的 bash 输出的一些文本部分。我的 bash 输出如下:

vserver            policyname  clientmatch  rorule rwrule superuser
------------------ ----------- ------------ ------ ------ ---------
Vserver1           Volume1     Host1        sys    never  sys
Vserver2           Volume2     Host2        sys    never  sys
Vserver3           Volume3     Host3        sys    none   never
Vserver4           Volume4     Host4        sys    never  sys
Vserver5           Volume5     Host5        sys    sys    sys

我要替换:

sys 为真
none 为假
从不使用 false

我该怎么做?我的输出一次显示所有行,但此尝试对我不起作用:

RED_TEXT=$(tput setaf 1)
GREEN_TEXT=$(tput setaf 2)
BOLD_TEXT=$(tput bold)
RESET_TEXT=$(tput sgr0)

true=${GREEN_TEXT}true${RESET_TEXT}
false=${RED_TEXT}false${RESET_TEXT}

echo "$OUTPUT" | sed "s/sys/${true}/g" | sed "s/never/${false}/g" | sed "s/none/${false}/g"

我做错了什么?

谢谢您,并致以最诚挚的问候!

您可以尝试一下这对您有帮助吗?

echo **-n** "$OUTPUT" | sed "s/sys/${true}/g" | sed "s/never/${false}/g" | sed "s/none/${false}/g"

echo **-n** "$OUTPUT" | sed -e 's/sys/${true}/g' | sed -e 's/none/${false}/g' | sed -e 's/never/${false}/g'