sed
다음에 대한 명령을 만들려고 합니다. v=window.location.search.match
파일을 검색 하여 다음으로 바꾸려고 합니다 .<script src="//ajax.googleapis.com/ajax/libs/jquery/1.4.3/jquery.min.js"></script>
이것이 내가 지금까지 가지고 있는 것입니다:
sed -i.bak 's/v=window.location.search.match/\<script src="//ajax.googleapis.com/ajax/libs/jquery/1.4.3/jquery.min.js"\>\</script\>/d' myfile.txt
이 명령을 실행한 후 다음 오류가 발생합니다.
sed: -e expression #1, char 49: unknown option to `s'
모두를 탈출시키기 위해 어디에 두어야 할지 혼란스럽습니다 \
.
답변1
@Babyy가 지적했듯이 표현식에 /
문자가 포함되어 있으면 sed
구분 기호를 입력 파일에서 찾을 수 없는 구분 기호로 변경할 위험이 있습니다 |
._
sed -i.bak 's|v=window.location.search.match|<script src="//ajax.googleapis.com/ajax/libs/jquery/1.4.3/jquery.min.js"></script>|' myfile.txt
이제 전체 줄을 바꾸려면 표현식의 첫 번째 부분이 줄의 시작부터 끝까지 모든 것과 일치해야 합니다.
sed -i.bak 's|^.*v=window.location.search.match.*$|<script src="//ajax.googleapis.com/ajax/libs/jquery/1.4.3/jquery.min.js"></script>|' myfile.txt