извлечь и заменить токен в сценарии оболочки - PullRequest
2 голосов
/ 13 января 2011

В файле с исходным кодом мне нужно изменить все экземпляры, как

foo_bar('param')

стать

booch['param']=$param

Здесь param - это токен, и он может варьироваться. Это может быть что угодно.

т.е. в файле

все

foo_bar('xxx')

должно стать

booch['xxx']=$xxx

и

все

foo_bar('yyy')

должно стать

booch['yyy']=$yyy

и так далее. Я пытаюсь сделать это, написав скрипт оболочки и используя sed. Но не мог понять, как это сделать. Надеюсь, мой запрос понятен. Спасибо

Ответы [ 2 ]

2 голосов
/ 13 января 2011
sed "s/foo_bar('\([^']*\)')/booch['\1']=$\1/g" infile > outfile

Test

$ echo "foo_bar('xxx')" | sed "s/foo_bar('\(.*\)')/booch['\1']=$\1/"
booch['xxx']=$xxx
0 голосов
/ 13 января 2011

В основном то же самое, используя perl

cat yourfile.txt | perl -pe "s/(foo_bar)\(\s*('(\w*)')\s*\)/booch\[\$2\]=\\$\$3/" > youralteredfile.txt
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...