Używam sed do znajdowania i zastępowania wzorców w plikach SAS, które mam, zamiast zmieniać je indywidualnie. Problem polega na tym, że próbuję zastąpić makrozmienne, a gdy używam ampersand, nie przetwarza to poprawnie.
Here's my code:
sed -ie 's/user=&uid./user=&sysuserid./g' *_table_*.sas
za każdym razem, gdy uruchamiam to polecenie, wydaje się, że dołącza się i wykonuje różne czynności z oryginalnym tekstem.
Pytanie: Jak zastąpić tekst zawierający znaki ampersand poleceniem sed?
&
jest postacią specjalną, dlatego należy go uciec, gdy jest używany w RHS - w twoim przypadku musisz biec,'s/user=&uid./user=\&sysuserid./g'
chociaż podejrzewam, że musisz także uciec z kropki w LHS, aby dopasować dosłowną kropkę, więc naprawdę potrzebujesz's/user=&uid\./user=\&sysuserid./g'