나는 다음 줄을 포함하는 스크립트가 있습니다SED 패턴 후 새로운 줄을 삽입
echo + /etc>>$BUFFER
echo - /etc/cache>>$BUFFER
하고를 떠나 :
echo + /etc>>$BUFFER
내가 나오지도 그들을 편집과 오른쪽이 후 또 다른 라인을 삽입 할을 나머지 파일은 그대로 이것을하기위한 SED 정규 표현식은 무엇입니까? 내가 제대로 이해하면
나는 다음 줄을 포함하는 스크립트가 있습니다SED 패턴 후 새로운 줄을 삽입
echo + /etc>>$BUFFER
echo - /etc/cache>>$BUFFER
하고를 떠나 :
echo + /etc>>$BUFFER
내가 나오지도 그들을 편집과 오른쪽이 후 또 다른 라인을 삽입 할을 나머지 파일은 그대로 이것을하기위한 SED 정규 표현식은 무엇입니까? 내가 제대로 이해하면
이 작동합니다 :
sed 's/echo \+ .*etc>>\$BUFFER/echo + \/etc>>\$BUFFER\necho - \/etc\/cache>>\$BUFFER/'
을 그렇지 않은 패턴에 슬래시를 처리하는 방법을 잘 어쩌면 최선의 해결책 (메신저입니다 - theorethically 그것을 좋아 탈출 충분해야한다 : \/
하지만 이상하게도이 작동하지 않습니다)
이는 $ 마지막 선은 말한다과는 -i 옵션 대신에 파일을 기록 추가입니다
sed -i '$a echo - /etc/cache>>$BUFFER' myfile.txt
불구하고 작동합니다.
이 경기는 어디서든 당신이 정규식과를 해결할 수 원하는 경우//이 그냥 나오지도 기대하기 때문에 정규식이//
sed -i '/echo + \/etc>>$BUFFER/a echo - /etc/cache>>$BUFFER' myfile.txt
에 캡슐화 /처럼 /를 탈출해야합니다 같은 위 문장의 (복사 & 붙여 넣기) 첫 번째 + 기호 (이 웹 사이트의 게시물을 실행하는 소프트웨어의 BUG 가능성이 있음) 이전의 공백을 생략하기 때문에 - 복사 할 때 작동해야하는 버전입니다.
sed -i '/echo \ + \/etc>>$BUFFER/a echo - /etc/cache>>$BUFFER' myfile.txt
또는 앞으로 단일 단일 슬래시를 이스케이프하지 않으려면 (이 경우에는 유용하지 않지만 앞면 슬래시가 많은 경우 다시 이상한 이스케이프 된 공간은 이 웹 사이트의 소프트웨어 (또는 내 브라우저 파이어 폭스) 명령 줄에 입력하면 당신이이 askers 질문에 나타나는 간격이 자신을 두 번 넣을 수 있습니다) :
sed -i '\@echo \ + /etc>>[email protected] echo - /etc/cache>>$BUFFER' myfile.txt
마지막 문장은 올바르게 입력되고 표시됩니다. 텍스트를 복사하여 붙여 넣으면 블로그 소프트웨어의 버그로 인해 + 기호 앞에 공백이 없습니다. –
sed -i '\#^ *echo + /etc>>\$BUFFER *$# a\
echo - /etc/cache>>$BUFFER' YourFile
echo + /etc>>$BUFFER
으로 추가하십시오.
가 무엇을 의미하고 무엇을 당신의 예를 표시 할을 취소뿐만 아니라이 정확한 라인의 내용에 제한 라인 구분 기호를 추가 (단, 제목 또는 후행 공백을 가질 수있다). – fedorqui
오케, 원래 게시물을 수정했습니다. – munin24
[sed를 사용하여 첫 번째 일치 후 줄 삽입] 중복 가능 (0120-337-3300) – fedorqui