Заменить спецсимвол с их номером вхождения - PullRequest
0 голосов
/ 03 января 2019

У меня есть переменная оболочки

str= this 'is shell' script 'to learn' 

Я хочу заменить первое вхождение ' на " ' и второе вхождение ' на ' " и т. Д.

наконец

str= this "'is shell'" script "'to learn'"

Ответы [ 2 ]

0 голосов
/ 03 января 2019

Попробуйте это

$ str=" this 'is shell' script 'to learn' "
$ echo $str
this 'is shell' script 'to learn'
$ perl -pe 's/\x27/sprintf("%s",++$i%2==0? "\"\x27" : "\x27\"")/ge' <<< "$str"
 this '"is shell"' script '"to learn"'
$
0 голосов
/ 03 января 2019
echo $str | perl -pe "s|'(.*?)'|\"'\1'\"|g"
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...