it-swarm-korea.com

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

이 질문에 대해 이미 답변을 받았을 것입니다. 나는 여러 곳에서 이것에 대해 많은 스레드를 보았지만 대답은 추출하기가 어렵습니다. 'sed'명령 사용법에 대한 도움말을 찾고 있습니다.

"hello.txt"파일 (프롬프트와 동일한 디렉토리에 있음)에 대해 작업하고 싶다고 가정하겠습니다. "few"라는 구가 포함 된 곳이면 "asd"로 변경해야합니다. 명령은 어떻게 생겼습니까?

338
roo

sed s 다듬기 ed itor , | (pipe)를 사용하여 standard streams (구체적으로 STDIN 및 STDOUT)을 sed를 통해 보내고 프로그래밍 방식으로 변경할 수 있다는 점에서 즉석에서 유닉스 철학 전통에 유용한 도구가되었습니다. 아래 언급 된 -i 매개 변수를 사용하여 파일을 직접 편집 할 수도 있습니다.
다음 을 고려하십시오.

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

s/는 찾은 표현식 few을 (를) asd s 대체하는 데 사용됩니다.

용감한 소수.


바보, 용감한.

/g는 "global"을 나타내며, 이는 전체 라인에 적용됩니다. /g (s/few/asd/)를 사용하지 않으면 항상 3 개의 슬래시가 필요합니다. few는 같은 줄에 두 번 표시되며 첫 번째 few이 (가) asd (으)로 변경되었습니다.

소수의 남자, 소수의 여자, 용감한.


엉덩이 남자, 몇 여자, 용감한.

이것은 줄의 시작 부분에 특수 문자를 변경하는 것과 같은 일부 상황에서 유용합니다 (예를 들어, 일부 사람들이 이메일 스레드에서 이전 자료를 가로 탭으로 인용하는 데 사용되는 것보다 큰 기호를 대체하면서 인용 된 대수 부등식은 나중에 줄에 표시 함) untouched)) anywherefew가 발생하도록 지정하는 예에서는 교체해야합니다. /g인지 확인하십시오.

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

-i 옵션은 hello.txt 파일의 i n 위치를 편집하는 데 사용됩니다.

-e 옵션은 e expression/명령을 표시합니다 (이 경우 s/).

참고 : -i -e를 사용하여 검색/대체해야합니다. -ie를 수행하면 문자 'e'가 추가 된 모든 파일의 백업이 작성됩니다.

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

g : 글로벌

s : 대체

-i : 실시간 파일 작업 inplace

75
PersianGulf