xx
다음 내용이 포함된 파일이 있습니다.
@base_url = "http://dmstaffing-stage.herokuapp.com/"
나는 이 줄을 제거하기 위해 sed를 사용하고 싶습니다(아무것도 대체하지 않음). 나는 이 sed 기술을 다음과 같은 여러 다른 라인과 함께 성공적으로 사용했습니다.
sed -i 's/require "selenium-webdriver"//' xx
하지만 @base_url 줄을 사용한 시도는 작동하지 않습니다. http://의 " 또는 //가 엉망인 것 같지만 고칠 수 없는 것 같습니다!
나는 시도했다:
$ sed 's/@base_url = "http://dmstaffing-stage.herokuapp.com/"//' xx
sed: -e expression #1, char 23: unknown option to `s'
$ sed 's/@base_url = \"http://dmstaffing-stage.herokuapp.com/\"//' xx
sed: -e expression #1, char 24: unknown option to `s'
$ sed 's/@base_url = "http:\/\/dmstaffing-stage.herokuapp.com/"//' xx
sed: -e expression #1, char 58: unknown option to `s'
그러나 그들 중 누구도 일하지 않았습니다.
답변1
앞에서 언급했듯이 다른 구분 기호를 사용하거나탈출하다삭감. 마지막 시도에서 마지막 슬래시를 이스케이프 처리하지 못했습니다.
지적한대로@stephenchazeras, dot
탈출도 마찬가지입니다.
그리고 포함하여@테덴sed
필요하지 않은 경우 정규식 대신 고정 문자열이 선택됩니다 grep -Fxv
. 전체 라인과 일치하는지 확인하세요. 뒤집다.-F
-x
-v
그러나 간단한(매우 간단한) 벤치마크가 time -v
더 인기가 있는 것 같습니다 sed
. (GNU 변형.)
sed 's/@base_url = "http:\/\/dmstaffing-stage\.herokuapp\.com\/"//' xx
빈 줄을 남기지 않고 완전히 제거하려면 다음을 사용하십시오.
sed '/@base_url = "http:\/\/dmstaffing-stage\.herokuapp\.com\/"/d' xx
|
+--- Delete
답변2
다른 구분 기호를 사용해 보십시오.
sed 's|@base_url = "http://dmstaffing-stage.herokuapp.com/"||' xx
답변3
정규식의 슬래시는 sed의 구분 기호를 혼란스럽게 합니다. 하지만 당신은 사용할 수 있습니다다른 구분 기호슬래시보다. 예를 들어:
sed 's#@base_url = "http://dmstaffing-stage.herokuapp.com/"##' xx
답변4
예를 들어 슬래시를 피할 수 있습니다 sed -e 's/"@base_url = "http:\/\/dmstaffing-stage.herokuapp.com\/"/d'
. 이 정글은 /\/\//\//
LTS(기울어진 이쑤시개 증후군)라는 증상입니다. 이 문제를 해결하는 가장 좋은 방법은 ;
귀하의 경우와 같이 다른 구분 기호를 사용하거나 현재 마음에 드는 영숫자가 아닌 다른 문자를 사용하는 것입니다(분명히 염두에 두고 있는 손상에는 포함되지 않음).