2014-04-28 5 views
1

파일의 텍스트 줄을 바꾸려고합니다. 이것은 특정 줄 번호가 아니며 특정 매개 변수와 일치하고 전체 줄을 원하는 줄로 바꿉니다.라인 bash 스크립트를 바꾸는 방법

'sed'를 보면 아이디어가있는 것 같습니다. 문제는 모든 특수 문자가 소스에 포함되어 있습니다./sed에서 나를 혼란스럽게하는 문자열을 올바르게 처리하는 방법입니다. 나는 이것들을 파싱 된 변수들이지만 결과는 없다.

예 : 소스 라인에 맞게 :이처럼 사용할 수 있습니다 PATH_FLOW="file:///var/log"

sed -i 's/^PATH_FLOW=*/PATH_FLOW="file:///var/log"/g' /etc/sysconfig/random_file 

답변

1

: PATH_FLOW=*ANYTHINGgoes* 는로 대체하려면

속임수를 썼는지
sed -i.bak '/PATH_FLOW=/s~^.*$~PATH_FLOW="file:///var/log"~' 
+0

, 덕분에 많이 anubhava을! – user3144292

+0

환영합니다. 다행입니다. – anubhava

+0

줄 선택식이 고정되어 있지 않으므로 'PATH_FLOW ='가 포함 된 모든 줄과 일치합니다. 또한 일치하는 부분을 다시 입력 할 이유가 없으며, 끝에있는'/ g '는 전체 행을 대체 할 때 유용하지 않습니다. 'sed -i.bak '~^\ (PATH_FLOW = \). * $ ~ \ 1 "file : /// var/log"~'' – dannysauer

관련 문제