sed 정규식 예제

AWK는 일치 식 양식인 exp1 ~ exp2를 지원하며, 여기서 exp1은 문자열로 평가되고 exp2는 정규식으로 평가되고 일치 결과가 반환됩니다. 이 예제에서는 콜론을 구분 기호로 사용하고 있습니다. 정규식에서 구분 기호 문자를 지정해야 하는 경우 앞에 백슬래시를 배치합니다. 범위의 관점에서발생도 지정할 수 있습니다. 예를 들어 범위를 {m,n}으로 지정하면 `m`은 최소 시간 발생을 나타내고 `n`은 최대 시간 발생을 나타냅니다. 다음에, sed에이 시리즈의 마지막 기사에서, 나는 당신에게 작업의 많은 다른 종류의 sed를 사용하는 우수한 실제 예를 많이 보여 드리겠습니다. 스크립트가 수행하는 작업을 보여 줄 뿐만 아니라 스크립트가 수행하는 이유를 보여 줄 것입니다. 작업이 완료되면 다양한 프로젝트에서 sed를 사용하는 방법에 대한 훌륭한 아이디어를 추가로 얻을 수 있습니다. 그럼 보자! 이 정규식은 대체 문자열에서 참조할 수 있는 세 가지 논리적 영역을 정의한다는 점을 제외하고는 첫 번째 표현식과 동일하게 작동합니다. 마지막 스크립트: 두 줄의 특정 패턴을 검색하거나 줄 경계에서 분할될 수 있는 두 개의 연속단어를 검색할 수 있습니다. 다음 예제는 같은 줄에 있거나 하나는 줄의 끝에 있고 두 번째 단어는 다음 줄의 시작 부분에 있는 두 단어를 찾습니다.

발견되면 첫 번째 단어가 삭제됩니다: s/// 대체 명령에 대해 알아야 할 몇 가지 다른 사항이 있습니다. 첫째, 명령이며 명령일 뿐입니다. 위의 예에 지정된 주소가 없습니다. 즉, s/// 명령을 주소와 함께 사용하여 적용할 줄을 제어할 수도 있습니다. 가장 먼저 알아야 할 규칙은 정규식 패턴이 대/소문자를 구분한다는 것입니다. 정규식은 여러 문자 시퀀스를 설명하는 데 사용할 수 있는 문자열입니다. 정규식은 ed, sed, awk, grep 및 보다 제한된 범위의 vi를 포함하여 여러 가지 유닉스 명령에서 사용됩니다. 일반 언어의 이론은 정규 표현의 뒷받침. 정규식과 일치하지 않았기 때문에 문자열 “abc”는 변경되지 않습니다. 출력에서 “abc”를 제거하려면 정규식을 나머지 줄과 일치하도록 확장하고 다음 항목인 “(“””)” 및 “1”을 사용하여 표현식의 일부를 명시적으로 제외해야 합니다.

예를 들어 처음 12줄을 인쇄하려면 sed `12q`를 사용합니다. 명령 q는 sed를 종료합니다. 그래서,이 프로그램은 12 줄에 닿은 후 인쇄됩니다. C에서와 마찬가지로 변수 할당은 문이 아닌 표현식입니다. 기본적으로 sed는 POSIX 기본 정규식 구문을 사용합니다. (더 편안한) 확장 구문을 사용하려면 플래그 -E. 일반적으로 제공 – 유닉스와 리눅스 시스템은 표준 출력을 처리하는 데 몇 가지 인텔리전스를 적용합니다. 결과를 터미널로 보내는 경우 결과를 사용할 수 있게 되는 즉시 출력을 원한다고 가정합니다. 그러나 출력을 파일에 보내는 경우 더 나은 성능을 원한다고 가정하므로 버퍼가 가득 차면 버퍼의 내용이 파일에 기록될 때까지 출력을 버퍼링합니다. 이것에 대해 자세히 설명하겠습니다.

이 예제에서는 매우 큰 파일이 있고 sed를 사용하여 문자열을 검색하고 찾을 때 인쇄한다고 가정해 보겠습니다. 검토하기 위해 이스케이프된 괄호(즉, 백슬래시가 있는 괄호)는 정규식과 일치하는 문자의 하위 문자열을 기억합니다.