Можно ли выполнить двойную подстановку с помощью строки оболочки?

Одиночная подстановка проста:

string="Mark Shuttleworth"
echo ${string/a/o}

Mork Shuttleworth

Возможно ли хотя бы удвоить одновременно?

echo ${string/a/o string/t/g} #doesn't work, but you get the idea

Mork Shuggleworgh

Регулярные выражения достаточно в качестве ответа, если это возможно, используя их.

Спасибо

1
задан 22 January 2017 в 02:24

2 ответа

Вы заменяете одиночные буквы, поэтому просто используйте tr:

tr at og

Это приводит к замене каждого a на o, а каждый t заменяется на [ f7]. В вашем примере:

ek@Io:~$ tr at og <<<'Mark Shuttleworth'
Mork Shuggleworgh
6
ответ дан 23 May 2018 в 02:12

Попробуйте

echo ${string/a/o} ${string/t/g}

Я использую свой планшет, а не bash для тестирования.

Вы можете проверить, используя команду printf, намного более гибкую.

-1
ответ дан 23 May 2018 в 02:12

Другие вопросы по тегам:

Похожие вопросы: