"sed"를 사용하여 찾기 및 바꾸기

"sed"를 사용하여 찾기 및 바꾸기

나는 이 질문이 아마도 이전에 답변되었을 것이라는 것을 알고 있습니다. 이 질문에 대한 게시물을 여러 곳에서 많이 봤지만 대개 답변을 찾는 데 어려움을 겪습니다. "sed" 명령의 사용 예에 ​​대한 도움을 찾고 있습니다.

"hello.txt" 파일(프롬프트와 동일한 디렉터리에 있음)에 대해 작업을 수행한다고 가정해 보겠습니다. "few"라는 문구가 포함된 모든 위치는 "asd"로 변경되어야 합니다. 그 명령은 어떤 모습일까요?

답변1

sed~이다에스트레메편집하다이토르|, (파이프)를 사용하여 보낼 수 있으므로표준 스트림(특히 STDIN 및 STDOUT) sed프로그래밍 방식으로 즉시 변경하면 Unix 철학적 전통에서 편리한 도구가 되지만 -i아래에 언급된 매개변수를 사용하여 파일을 직접 편집할 수도 있습니다.
다음을 고려하세요:

sed -i -e 's/few/asd/g' hello.txt

s/에 익숙해에스찾은 표현식을 few다음으로 바꾸십시오 asd.

몇몇, 용감한.


asd, 용감한 사람.

/g"글로벌"을 의미하며 전체 생산 라인에 대해 이 작업을 수행한다는 의미입니다. 생략하고 /g(사용 s/few/asd/, 어쨌든 항상 슬래시 3개가 필요함) few같은 줄에 두 번 나타나는 경우 첫 번째 슬래시만 few다음으로 변경됩니다 asd.

남자 몇 명, 여자 몇 명, 용감한 사람들.


외로운 남자, 소수의 여자, 용감한 남자.

이는 인용된 대수적 부등식을 그대로 유지하면서 줄 시작 부분의 특수 문자를 변경하는 것과 같은 일부 경우에 유용합니다(예: 이메일 스레드에서 이전 자료를 인용하기 위해 일부 사람들이 사용하는 보다 큼 기호를 가로 탭 문자로 대체). 줄 뒤에는 영향을 받지 않음), 그러나 지정한 예에서는어딘가에 few발생 시 교체해야 하므로 반드시 구비해 두십시오 /g.

다음 두 가지 옵션(플래그)이 하나로 결합됩니다 -ie.

-i편집 옵션n 파일에 hello.txt.

-e옵션 표현이자형실행할 표현식/명령입니다. 이 경우에는 s/.

-i -e참고: 검색/바꾸기를 사용하는 것이 중요합니다. 이렇게 하면 -ie문자 "e"가 추가된 각 파일의 백업이 생성됩니다.

답변2

sed -i 's/fea/asd/g'  hello.txt

G:글로벌

에스:바꾸다

-나: 파일을 실시간으로 처리합니다.제자리에

관련 정보