Grep: 전체 줄 검색 및 바꾸기

Grep: 전체 줄 검색 및 바꾸기

주문하다

 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

관련 정보