Заменить текст в несколько строк - PullRequest
0 голосов
/ 08 июня 2018

Я пытаюсь заменить некоторые текстовые части моего вывода 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 на trueникто с ложнымникогда с ложным

Как я могу это сделать?Мой вывод показывает мне все строки одновременно, и эта попытка не работает для меня:

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"

Что я делаю не так?

Спасибо и наилучшими пожеланиями!

1 Ответ

0 голосов
/ 08 июня 2018

Вы можете попробовать это может вам помочь?

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'
...