sed 명령은 널리 사용되고 사용하기 쉬우므로 빠른 텍스트 처리를 위한 강력한 도구입니다. 사실, 암기하고 사용하는 것이 가장 적합한 학습 경로이며 어려운 기술입니다. 하지만 고급 기능이 너무 많아서 복잡합니다. 이 기사에서는 sed의 고급 기능에 초점을 맞추지 않고 일반적으로 사용되는 일부 작업만 설명합니다.
사용해 보면 vim의 일부 개념과 일치한다는 것을 알 수 있습니다. 정규식의 구문은 기본적으로 동일하며 학습 비용도 많이 들지 않습니다. 개인의 비전과 작업 효율성의 관점에서 볼 때 sed 명령은 프로그래머가 숙달해야 하는 중요한 도구입니다.
구글을 즉석에서 사용할 수 있다고 하는 분들은 대부분 엑셀에 텍스트를 복사해서 천천히 작업하는데 익숙하고, 많은 양의 파일을 접하게 되면 더욱 혼란스러워집니다. 한 가족이 다른 가족에 들어가지 않는다는 의미는 아니며, 이 기사는 당신을 위해 작성된 것이 아닙니다.
간단한 소개
그림과 같이 간단한 sed 명령에는 다음이 포함됩니다. three 주요 부분은 매개변수, 범위, 작업의 세 가지입니다. 작업할 파일을 명령줄 끝에 직접 매달 수 있습니다. 명령줄 외에도 sed는 -f 매개변수를 통해 sed 스크립트를 지정할 수도 있습니다. 이는 고급 사용법이므로 자세히 설명하지 않겠습니다.
관련 권장 사항: "linux tutorial"
당신이 똑똑하다면 몇 가지 예제 명령을 여러 번 반복할 것입니다. 때로는 설명조차 필요하지 않습니다.
Parameter
-n 이 매개변수는 --quiet 또는 --silent를 의미합니다. 실행 프로세스의 출력을 무시하고 결과만 출력함을 나타냅니다.
우리가 일반적으로 사용하는 또 다른 매개변수는 -i입니다.
이 매개변수를 사용한 후에는 모든 변경 사항이 원본 파일에서 수행됩니다. 출력이 원본 파일을 덮어쓰게 됩니다. 매우 위험하므로 조심하세요.
Range
1,4는 파일에서 1, 2, 3, 4행의 내용을 찾는 것을 의미합니다.
이 범위의 지정은 매우 영적입니다. 다음 예를 참조하십시오(사진의 범위 부분을 직접 교체하십시오).
범위 선택에서는 일반 매칭을 사용할 수도 있습니다. 아래 예를 참조하세요.
다음 명령은 직관상 위의 소개와 하나씩 일치합니다. 범위와 작업 사이에 공백이 있을 수 있습니다.
Operation
가장 일반적으로 사용되는 작업은 인쇄를 의미하는 p입니다. 예를 들어 다음 두 명령은 동일합니다.
인쇄 외에도 우리가 일반적으로 사용하는 다음과 같은 작업이 있습니다.
A, i, c 등의 연산은 기본적이지만 거의 사용되지 않으므로 소개하지 않겠습니다. 설명하기 위해 여전히 몇 가지 명령을 사용합니다.
sed 명령이 수행할 수 있는 작업을 살펴보고 명령을 클릭하여 경험해 보겠습니다.
#으로 시작하는 모든 줄과 빈 줄을 삭제합니다.
아래와 같이 가장 일반적으로 사용되는 것입니다.
은 그룹 파일의 두 번째 줄을 인쇄한다는 의미입니다.
그러면 여러 명령을 동시에 실행하고 싶지만 sed 스크립트 파일을 작성하고 싶지 않다면 어떻게 해야 할까요? -e 매개변수를 추가합니다.
sed의 운영 단위는 행입니다.
교체 모드
위는 sed 명령의 일반적인 일치 모드이지만 강력한 대체 모드도 있습니다. 어떤 값을 찾아 바꾸고 결과를 출력합니다. -n 매개변수는 대체 모드를 사용할 때 거의 사용되지 않습니다.
교체 모드에는 매개변수가 많지만 첫 번째와 다섯 번째 부분은 생략 가능합니다. 교체 후 전체 텍스트가 출력됩니다.
전반은 일부 범위를 일치시키는 데 사용되고 후반은 교체 작업을 수행합니다.
Scope
이 범위는 위의 범위 구문과 유사합니다. 아래 예를 참조하세요.
구체적인 명령은 다음과 같습니다:
Command
여기서 명령어는 s를 의미합니다. 이것이 대체의 의미입니다.
Find Match
검색 부분에서는 대체할 문자열을 찾습니다. 이 부분은 순수 문자열이나 정규식을 허용할 수 있습니다. 아래 예를 참조하세요.
명령은 다음과 유사합니다.
Replace
찾은 문자열을 바꿀 시간입니다. 이 섹션의 콘텐츠는 일치하는 항목 찾기 섹션에 있는 콘텐츠를 대체합니다.
안타깝게도 이 부분에서는 정규식을 사용할 수 없습니다. 가장 일반적으로 사용되는 것은 정확한 교체입니다. 예를 들어, a를 b로 바꿉니다.
하지만 고급 기능도 있습니다. Java나 Python의 일반 API와 유사하게 sed를 대체하는 것도 Matched Pattern이라는 의미를 가지며, Group도 자세히 설명하지 않고도 얻을 수 있습니다. 일반적으로 사용되는 대체 기호는 다음과 같습니다. 아니요, 다시 반복하세요. 대체 문자열에 사용되면 원래 검색 일치 데이터를 나타냅니다.
다음 명령은 파일의 각 줄을 따옴표로 묶습니다.
플래그 매개변수
이러한 매개변수는 개별적으로 또는 여러 개로 사용할 수 있으며 가장 일반적으로 사용되는 매개변수만 소개합니다.
두 명령의 구문을 살펴보세요.
규칙성으로 인해 많은 문자를 이스케이프해야 합니다. 스크립트에서는 많은 \, * 및 기타 처리를 수행하게 됩니다. |^@! 4개 문자를 사용하여 바꿀 수 있습니다.
예를 들어 다음 5개의 명령은 동일합니다.
참고: 이 방법은 범위의 전반부에는 사용할 수 없습니다. @ 기호를 사용하는 데 익숙합니다.
Others
정규식
보시다시피 정규식은 명령줄 어디에나 있습니다. 아래에 간략한 설명이 나와 있습니다.
매개변수 i
매개변수 i는 위에서 간략하게 소개한 바 있으며, 해당 기능은 원본 파일에 대해 작업을 실행할 수 있도록 하는 것입니다. 무엇을 하든 원본 파일을 덮어쓰게 됩니다. 이것은 매우 위험합니다.
파라미터를 추가하면 원본 파일을 백업할 수 있습니다.
sed -i.bak 's/a/b/' file
위 명령은 원본 파일에 적용되어 file.bak 파일을 생성합니다. i 매개변수를 사용하여 bak 파일도 지정하는 것이 좋습니다.
두 가지 명령을 사용하여 다른 명령과 결합된 sed의 성능을 살펴봅니다.
길이가 50자 이상인 줄을 출력하세요
각 단어가 파일에 몇 번 나타나는지 세어보세요
디렉토리에서 py 파일을 찾아 줄 수준 주석을 모두 삭제하세요
5-7행과 10-13행을 보세요
IP 주소만 출력
위 내용은 Linux 프로덕션 환경에서 가장 일반적으로 사용되는 "Sed" 기술 세트의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!