표준 출력에 간단한 URL 텍스트가 있습니다. URL의 일부가 아래에 표시됩니다.
https://somedomain./xx?t=s&u=random other text
명령줄에서 sed나 다른 것을 사용하여 이것을 변경하고 싶습니다.
https://somedomain./xx?t=l&u=random other text
나는 사용했다sed -e 's/s&/l&/'
로 바꾸는 대신 s&
문자열을 입력했습니다. 내 주문에 문제가 있나요?l&
ls&
답변1
s
명령 오른쪽에 "\"를 추가하여 명령 오른쪽의 "&" 문자를 이스케이프해야 합니다. 이것이 없으면 "&"는 특별하며 정규 표현식과 일치하는 항목으로 대체됩니다. 왼쪽의 "&"는 특별하지 않으며 비특별함을 보장합니다. while은 &
결코 특별하지 않고, \&
특별하다고 보장되지 않으며, 일치하는 항목이 지정되지 않기 때문에 이스케이프를 피하고 싶지 않습니다 .
그래서:
sed -i 's/s&/l\&/g' file.txt