주문하다
grep "foo" myfile.txt
내 파일에서 일치하는 모든 줄을 인쇄합니다.
이제는 바꾸고 싶어전반적으로다른 로프를 사용하십시오. 어떻게 해야 하나요?
답변1
전체 줄의 하위 문자열을 일치시키려면 sed의 s
명령과 정규식을 사용하여 줄의 나머지 부분을 지울 수 있습니다.
sed -i 's/^.*foo.*$/another string/' myfile.txt
또는 c
다음 명령을 사용하여 일치하는 줄을 한 번에 바꿉니다.
sed -i '/foo/ { c \
another string
}' myfile.txt
프롬프트에 여러 줄의 명령을 입력하고 싶지 않다면 스크립트에 입력하면 됩니다:
$ cat foo.sed
/foo/ { c \
another string
}
$ sed -i -f foo.sed myfile.txt
답변2
당신은 그것을 사용할 수 있습니다제자리에기능sed:
sed -i -e 's/foo/bar/' myfile.txt