Я використовую sed для пошуку та заміни шаблонів у файлах SAS, а не замінюю їх окремо. Проблема полягає в тому, що я намагаюся замінити макрозмінні, і коли я використовую ampersand він не обробляється правильно.
Here's my code:
sed -ie 's/user=&uid./user=&sysuserid./g' *_table_*.sas
кожного разу, коли я запускаю цю команду, вона здається, що вона додається і виконує всілякі фанкі з оригінальним текстом.
Питання: Як замінити текст, що містить амперсанди, командою sed?
&
є спеціальним символом, тому його's/user=&uid./user=\&sysuserid./g'
потрібно уникати при використанні в RHS - у вашому випадку вам доведеться бігти, хоча я підозрюю, що вам також потрібно втекти крапкою в LHS, щоб відповідати буквальній крапці, тому вам дійсно потрібно's/user=&uid\./user=\&sysuserid./g'