터미널 사용 : 정규식 사용

내가 항상 Linux 터미널에 대해 좋아했던 것 중 하나는 정규 표현식을 사용하여 얻을 수있는 것입니다. 복잡한 텍스트를 찾거나 다른 텍스트로 교체해야 할 때 정규식을 사용하면 작업을 크게 단순화 할 수 있습니다. 처음부터 시작하겠습니다.

경고 :이 게시물은 엉덩이에 통증이 있습니다. 이 게시물을 항상 읽으면 의식을 잃을 수 있습니다. 전체 게시물을 읽기 전에 중간에 휴식을 취하거나 의사 또는 약사에게 문의하십시오.

정규식이란 무엇입니까?

정규 표현식은 찾고자하는 텍스트를 설명 할 수있는 일련의 특수 문자입니다. 예를 들어, "linux"라는 단어를 검색하려면 사용중인 프로그램에 해당 단어를 넣으면 충분합니다. 단어 자체는 정규식입니다. 지금까지는 매우 간단 해 보이지만 특정 파일에서 모든 숫자를 찾으려면 어떻게해야합니까? 아니면 대문자로 시작하는 모든 줄? 이 경우 더 이상 간단한 단어를 넣을 수 없습니다. 해결책은 정규식을 사용하는 것입니다.

정규식 대 파일 패턴.

정규식의 주제를 다루기 전에 정규식에 대한 일반적인 오해를 정리하고 싶습니다. 정규식은 하드 드라이브의 다양한 파일을 참조하기 위해 rm, cp 등과 같은 명령에 매개 변수로 입력 한 것이 아닙니다. 그것은 파일 패턴이 될 것입니다. 정규식은 일부 공통 문자를 사용한다는 점에서 유사하지만 다릅니다. 파일 패턴은 하드 디스크의 파일에 대해 실행되고 패턴과 완전히 일치하는 패턴을 반환하는 반면 정규식은 텍스트에 대해 실행되고 검색된 텍스트가 포함 된 행을 반환합니다. 예를 들어, 패턴에 해당하는 정규식 *.* 그것은 다음과 같을 것입니다 ^.*\..*$

정규식의 유형.

모든 프로그램이 동일한 정규식을 사용하는 것은 아닙니다. 그다지 적지 않습니다. 다소 표준 유형의 정규식이 여러 개 있지만 구문을 약간 변경하거나 자체 확장을 포함하거나 완전히 다른 문자를 사용하는 프로그램도 있습니다. 따라서 잘 모르는 프로그램에서 정규식을 사용하려는 경우 가장 먼저해야 할 일은 프로그램의 설명서 나 설명서를보고 인식하는 정규식이 어떤 것인지 확인하는 것입니다.

첫째, Linux 도구가 사용하는 POSIX 표준에 포함 된 두 가지 주요 유형의 정규식이 있습니다. 기본 및 확장 정규식입니다. grep 또는 sed와 같이 정규식과 함께 작동하는 많은 명령을 사용하면이 두 가지 유형을 사용할 수 있습니다. 아래에서 그들에 대해 이야기하겠습니다. PERL 스타일의 정규식도 있으며 이러한 변형을 사용하는 vim 또는 emacs와 같은 프로그램이 있습니다. 우리가 원하는 것에 따라 둘 중 하나를 사용하는 것이 더 적절할 수 있습니다.

정규식 테스트.

정규식의 구문은 사소한 것이 아닙니다. 복잡한 정규 표현식을 작성해야 할 때 한눈에 이해할 수없는 일련의 특수 문자 앞에있게되므로 사용 방법을 배우려면 원하는 모든 테스트를 수행하고 볼 수있는 방법이 있어야합니다. 결과를 쉽게. 이것이 바로 정규 표현식이 지배 될 때까지 테스트를 수행하고 필요한 모든 것을 실험 할 수있는 몇 가지 명령을 입력하는 이유입니다.

첫 번째는 grep 명령입니다. 이것은 검색을 수행하기 위해 가장 자주 사용할 명령입니다. 구문은 다음과 같습니다.

grep [-E] 'REGEX' FICHERO
COMANDO | grep [-E] 'REGEX'

쉘이 그것에 도달하지 않도록 항상 정규식을 작은 따옴표로 묶는 것이 좋습니다. 첫 번째 방법은 파일에서 정규식을 찾는 것입니다. 두 번째는 정규식을 통해 명령의 출력을 필터링 할 수 있습니다. 기본적으로 grep은 기본 정규식을 사용합니다. -E 옵션은 확장 정규식을 사용하기위한 것입니다.

정규식의 작동 방식을 확인하는 데 도움이되는 트릭은 grep 명령에서 색상 사용을 활성화하는 것입니다. 이렇게하면 사용중인 정규식과 일치하는 텍스트 부분이 강조 표시됩니다. grep 명령에서 색상을 활성화하려면 환경 변수가 GREP_OPTIONS 가치를 포함하다 --color이 명령으로 수행 할 수 있습니다.

GREP_OPTIONS=--color

항상 활성화되도록 .bashrc에 넣을 수 있습니다.

정규식을 사용하는 또 다른 방법은 sed 명령을 사용하는 것입니다. 이것은 텍스트를 대체하는 데 더 적합하지만 검색에도 사용할 수 있습니다. 구문은 다음과 같습니다.

sed -n[r] '/REGEX/p' FICHERO
COMANDO | sed -n[r] '/REGEX/p'

sed 명령은 또한 기본적으로 기본 정규식을 사용하며 -r 옵션과 함께 확장 정규식을 사용할 수 있습니다.

내가 또한 명명하고 싶은 또 다른 명령은 awk입니다. 이 명령을 사용하면 자신의 프로그래밍 언어로 스크립트를 작성할 수 있으므로 다양한 용도로 사용할 수 있습니다. 우리가 원하는 것이 파일이나 명령의 출력에서 ​​정규식을 찾는 것이라면이를 사용하는 방법은 다음과 같습니다.

awk '/REGEX/' FICHERO
COMANDO | awk '/REGEX/'

이 명령은 항상 확장 정규식을 사용합니다.

테스트를 수행하려면 검색을위한 예제로 사용할 텍스트도 필요합니다. 다음 텍스트를 사용할 수 있습니다.

- Lista de páginas wiki:

ArchLinux: https://wiki.archlinux.org/
Gentoo: https://wiki.gentoo.org/wiki/Main_Page
CentOS: http://wiki.centos.org/
Debian: https://wiki.debian.org/
Ubuntu: https://wiki.ubuntu.com/

- Fechas de lanzamiento:

Arch Linux: 11-03-2002
Gentoo: 31/03/2002
CentOs: 14-05-2004 03:32:38
Debian: 16/08/1993
Ubuntu: 20/10/2004

Desde Linux Rulez.

이것은 포스트의 나머지 부분에서 예제로 사용할 텍스트이므로 터미널에서 편리하게 사용할 수 있도록 파일로 복사하는 것이 좋습니다. 원하는 이름을 입력 할 수 있습니다. 나는 그것을 정규식이라고 불렀다.

수업 시작.

이제 정규 표현식 테스트를 시작하는 데 필요한 모든 것이 있습니다. 조금씩 가자. 정규식을 사용한 검색의 몇 가지 예를 넣어 각 문자의 용도를 설명하겠습니다. 그다지 좋은 예는 아니지만 매우 긴 게시물을 올릴 예정이므로 더 이상 복잡하게 만들고 싶지 않습니다. 그리고 저는 정규 표현식으로 할 수있는 일에 대해 간단히 살펴 보겠습니다.

가장 간단한 방법은 특정 단어를 검색하는 것입니다. 예를 들어 "Linux"라는 단어가 포함 된 모든 줄을 검색한다고 가정합니다. 다음과 같이 작성하면되므로 가장 쉽습니다.

grep 'Linux' regex

그리고 결과를 볼 수 있습니다.

아치Linux: https://wiki.archlinux.org/ 아치 Linux: 11 년 03 월 2002 일부터 Linux 룰즈.

다음은 "Linux"라는 단어를 포함하는 세 줄입니다. 색상 트릭을 사용한 경우 강조 표시됩니다. "ArchLinux"에서처럼 긴 단어의 일부라도 우리가 찾고있는 단어를 인식합니다. 그러나 URL "https://wiki.archlinux.org/"에 나타나는 "linux"라는 단어는 강조 표시되지 않습니다. 소문자 "l"로 표시되고 대문자로 검색했기 때문입니다. grep 명령에는 이에 대한 옵션이 있지만 정규 표현식을 다루는 기사에서는 이에 대해 설명하지 않겠습니다.

이 간단한 테스트를 통해 첫 번째 결론을 도출 할 수 있습니다.

  • 정규식에 입력 된 일반 문자는 자신과 일치합니다.

즉, 문자 "a"를 넣으면 문자 "a"를 찾습니다. 논리적 이지요? 🙂

이제 "CentO"다음에 임의의 문자가 있지만 단일 문자 만 검색한다고 가정합니다. 이를 위해 "."문자를 사용할 수 있습니다. 이는 모든 문자와 일치하지만 하나만 일치하는 와일드 카드입니다.

grep 'CentO.' regex

결과는 다음과 같습니다.

CentOS에: http://wiki.centos.org/
CentO: 14-05-2004 03:32:38

즉, "CentOS"에 "S"가 포함되어 있지만 한 경우에는 대문자이고 다른 경우에는 소문자입니다. 그 자리에 다른 캐릭터가 나타나면 포함됩니다. 이미 두 번째 규칙이 있습니다.

  • 캐릭터 "." 모든 문자와 일치합니다.

더 이상 겉보기만큼 사소하지는 않지만 이것으로 우리는 많은 것을 할 수 없습니다. 조금 더 가자. 2002 년과 2004 년이 나타나는 줄을 찾고 싶다고 가정 해 보겠습니다. 두 개의 검색처럼 보이지만 다음과 같이 한 번에 수행 할 수 있습니다.

grep '200[24]' regex

이는 200 다음에 2 또는 4가 오는 숫자를 찾는다는 것을 의미합니다. 결과는 다음과 같습니다.

아치 리눅스 : 11-03-2002
Gentoo : 31/03 /2002
CentO : 14-05-2004 03:32:38
Ubuntu: 20/10/2004

세 번째 규칙이 있습니다.

  • 대괄호로 묶인 여러 문자는 대괄호 안의 문자와 일치합니다.

대괄호는 더 많은 플레이를 제공합니다. 문자를 제외하는 데 사용할 수도 있습니다. 예를 들어, ":"문자가 나오지만 뒤에 "/"가없는 사이트를 검색한다고 가정합니다. 명령은 다음과 같습니다.

grep ':[^/]' regex

대괄호 안에 첫 번째 문자로 "^"를 넣으면됩니다. 아래에 원하는 모든 문자를 입력 할 수 있습니다. 이 마지막 명령의 결과는 다음과 같습니다.

아치 리눅스: https://wiki.archlinux.org/
Gentoo: https://wiki.gentoo.org/wiki/Main_Page
CentOS: http://wiki.centos.org/
Debian: https://wiki.debian.org/
Ubuntu: https://wiki.ubuntu.com/
Arch Linux: 11 년 03 월 2002 일 Gentoo: 31 년 03 월 2002 일 CentO: 14 - 05-2004 03:32:38 데비안: 16 년 08 월 1993 일 Ubuntu: 20/10/2004

이제 배포판 이름 뒤에있는 ":"이 강조 표시되지만 URL 뒤에 "/"가 있으므로 URL에있는 이름은 강조 표시되지 않습니다.

  • 대괄호의 시작 부분에 "^"문자를 넣으면 대괄호의 다른 문자를 제외한 모든 문자와 일치합니다.

우리가 할 수있는 또 다른 일은 문자 범위를 지정하는 것입니다. 예를 들어, "-"가 뒤에 오는 숫자를 검색하려면 다음과 같습니다.

grep '[0-9]-' regex

이를 통해 0에서 9 사이의 문자를 지정한 다음 빼기 기호를 지정합니다. 결과를 보겠습니다.

아치 리눅스 : 11-03-2002 CentO : 14-05-2004 03 : 32 : 38

괄호 안에 여러 범위를 지정하여 범위를 단일 문자와 혼합 할 수도 있습니다.

  • 대괄호 안에 "-"로 구분 된 두 문자를 배치하면 범위 내의 모든 문자와 일치합니다.

이제 URL의 첫 번째 부분을 선택할 수 있는지 살펴 보겠습니다. "http"또는 "https"라고 표시된 것입니다. 마지막 "s"만 다르므로 다음과 같이하겠습니다.

grep -E 'https?' regex

물음표는 왼쪽에있는 문자를 선택적으로 만드는 데 사용됩니다. 그러나 이제 명령에 -E 옵션을 추가했습니다. 질문은 확장 정규식의 기능이기 때문입니다. 지금까지 우리는 기본적인 정규식을 사용하고 있었기 때문에 아무것도 넣을 필요가 없었습니다. 결과를 보겠습니다.

ArchLinux : HTTPS: //wiki.archlinux.org/ 젠투 : HTTPS: //wiki.gentoo.org/wiki/Main_Page CentOS : HTTP: //wiki.centos.org/ 데비안 : HTTPS: //wiki.debian.org/ Ubuntu : HTTPS: //wiki.ubuntu.com/

따라서 이미 새로운 규칙이 있습니다.

  • 뒤에 "?"가 오는 문자 해당 문자와 ​​일치하거나 일치하지 않습니다. 이것은 확장 정규식에만 유효합니다.

이제 우리는 완전히 다른 두 단어를 찾을 것입니다. "Debian"과 "Ubuntu"라는 단어가 모두 포함 된 줄을 찾는 방법을 살펴 보겠습니다.

grep -E 'Debian|Ubuntu' regex

수직 막대를 사용하여 두 개 이상의 다른 정규식을 분리하고 그 중 하나와 일치하는 줄을 찾을 수 있습니다.

데비안: https://wiki.debian.org/
Ubuntu: https://wiki.ubuntu.com/
데비안: 16 / 08 / 1993
Ubuntu: 20 / 10 / 2004
  • "|"문자 여러 정규식을 분리하고 그 중 하나와 일치하는 역할을합니다. 또한 확장 정규식에만 해당됩니다.

계속합시다. 이제 우리는 "Linux"라는 단어를 찾을 것입니다. 그러나 왼쪽에있는 다른 단어에 붙어 있지 않은 부분 만 찾습니다. 다음과 같이 할 수 있습니다.

grep '\

여기서 중요한 문자는 "<"이지만 grep이 특수 문자로 해석 할 수 있도록 앞에 "\"를 넣어 이스케이프해야합니다. 결과는 다음과 같습니다.

아치 Linux: 11 년 03 월 2002 일부터 Linux 룰즈.

"\>"를 사용하여 바로 옆에 있지 않은 단어를 검색 할 수도 있습니다. 예를 들어 보겠습니다. 이 명령을 시도해 보겠습니다.

grep 'http\>' regex

생성되는 출력은 다음과 같습니다.

CentOS : HTTP: //wiki.centos.org/

"Http"는 나왔지만 "https"는 나오지 않았습니다. "https"에는 단어의 일부가 될 수있는 "p"오른쪽에 여전히 문자가 있기 때문입니다.

  • "<"및 ">"문자는 각각 단어의 시작 및 끝과 일치합니다. 이러한 문자는 리터럴 문자로 해석되지 않도록 이스케이프되어야합니다.

우리는 좀 더 복잡한 일을합니다. "+"문자는 적어도 한 번 반복되는 왼쪽 문자와 일치합니다. 이 문자는 확장 정규식에서만 사용할 수 있습니다. 예를 들어, ":"로 시작하는 행에서 여러 숫자의 시퀀스를 검색 할 수 있습니다.

grep -E ':[0-9]+' regex

결과 :

CentOs : 14 년 05 월 2004 일 03: 32 : 38

숫자 38도 ":"로 시작하기 때문에 강조 표시됩니다.

  • "+"문자는 왼쪽에있는 문자와 일치하며 한 번 이상 반복됩니다.

"{"및 "}"를 사용하여 반복 횟수를 제어 할 수도 있습니다. 아이디어는 우리가 원하는 정확한 반복 횟수를 나타내는 숫자를 중괄호로 묶는 것입니다. 범위를 넣을 수도 있습니다. 두 가지 경우의 예를 살펴 보겠습니다.

먼저 XNUMX 자리 수열을 모두 찾을 것입니다.

grep '[0-9]\{4\}' regex

기본 정규식을 사용하는 경우 중괄호를 이스케이프해야하지만 확장 된 정규식을 사용하는 경우에는 이스케이프하지 않아야합니다. 확장하면 다음과 같습니다.

grep -E '[0-9]{4}' regex

두 경우 모두 결과는 다음과 같습니다.

아치 리눅스 : 11-03-2002
Gentoo : 31/03 /2002
CentO : 14-05-2004 03:32:38
Debian: 16/08/1993
Ubuntu : 20/10 /2004
  • 사이에 숫자가있는 "{"및 "}"문자는 지정된 횟수만큼 반복 된 이전 문자와 일치합니다.

이제 중괄호가있는 다른 예입니다. 3 ~ 6 개의 소문자가있는 단어를 찾고 싶다고 가정 해 보겠습니다. 다음을 수행 할 수 있습니다.

grep '[a-z]\{3,6\}' regex

결과는 다음과 같습니다.

-LISTA de 페이지s 위키: TOrchL이눅스: HTTPS:/ /위키.archlinux.조직/ G앙투: HTTPS:/ /위키.젠투.조직/위키/M아인_P나이
C다닐OS : HTTP:/ /위키.CentOS.조직/ D에비 안: HTTPS:/ /위키.데비안.조직/ 또는분투: HTTPS:/ /위키.우분투.COM/-F그리워 de 시작하다: TOrch L이눅스: 11 년 03 월 2002 일 G앙투: 31 년 03 월 2002 일 C다닐Os: 14-05-2004 03:32:38
D에비 안: 16 년 08 월 1993 일 U분투: 20 년 10 월 2004 일 D그것은 L이눅스 R울 레즈.

보시다시피, 우리가 원했던 것과 많이 닮지 않았습니다. 정규 표현식이 다른 단어 내에서 더 긴 문자를 찾기 때문입니다. 이 다른 버전을 사용해 보겠습니다.

grep '\<[a-z]\{3,6\}\>' regex

결과 :

-페이지 목록 위키: ArchLinux : HTTPS:/ /위키.archlinux.조직/ 젠투 : HTTPS:/ /위키.젠투.조직/위키/ Main_Page CentOS : HTTP:/ /위키.CentOS.조직/ 데비안 : HTTPS:/ /위키.데비안.조직/ Ubuntu : HTTPS:/ /위키.우분투.COM/

이것은 이미 우리가 원했던 것과 더 비슷해 보입니다. 우리가 한 것은 단어가 첫 글자 바로 앞에서 시작하고 마지막 글자 바로 뒤에 끝나도록 요구하는 것입니다.

  • 쉼표로 구분 된 두 개의 숫자가있는 "{"및 "}"문자는 두 숫자로 표시된 횟수만큼 반복 된 이전 문자와 일치합니다.

이제 "+"의 소수 인 문자를 살펴 보겠습니다. 그것은 "*"이고 그것의 작동은 매우 유사하다. 단지 XNUMX을 포함한 어떤 수의 문자와도 일치한다는 점이다. 즉, "+"와 동일하지만 텍스트에 표시하기 위해 왼쪽에있는 문자가 필요하지 않습니다. 예를 들어 wiki에서 시작하고 조직에서 끝나는 주소를 찾아 보겠습니다.

grep 'wiki.*org' regex

결과를 보겠습니다.

ArchLinux : https : //wiki.archlinux.org/ 젠투 : https : //wiki.gentoo.org/ wiki / Main_Page CentOS : http : //wiki.centos.org/ 데비안 : https : //wiki.debian.org/

완벽한.

이제 우리가 보게 될 마지막 캐릭터입니다. "\"문자는 문자를 오른쪽으로 이스케이프하여 특수한 의미를 잃는 데 사용됩니다. 예를 들어, 한 점에서 끝나는 선을 찾고 싶다고 가정합니다. 우리에게 발생할 수있는 첫 번째 일은 다음과 같습니다.

grep '.$' regex

결과는 우리가 찾고있는 것이 아닙니다.

-위키 페이지 목록:
ArchLinux : https://wiki.archlinux.org/
젠투 : https://wiki.gentoo.org/wiki/Main_Page
CentOS : http://wiki.centos.org/
데비안 : https://wiki.debian.org/
Ubuntu : https://wiki.ubuntu.com/
-출시일 : 아치 리눅스 : 11 년 03 월 200 일2
Gentoo : 31 년 03 월 200 일2
CentOs: 14-05-2004 03:32:38
데비안 : 16/08/1993
우분투 : 20/10/2004
Desde Linux 룰즈.

"."때문입니다. 모든 항목과 일치하므로 정규 표현식은 각 줄의 마지막 문자와 일치합니다. 해결책은 다음과 같습니다.

grep '\.$' regex

이제 결과는 우리가 원하는 것입니다.

Desde Linux 룰즈.

게임 끝

정규 표현식의 주제가 너무 복잡해서 일련의 기사에서 줄 수 있지만 이미 충분한 고통을 준 것 같습니다. 도착했다면 축하합니다. 그리고이 모든 것을 한 번에 읽었다면 아스피린이나 다른 것을 드십시오. 좋지 않을 수 있기 때문입니다.

지금은 그게 다입니다. 이 기사가 마음에 들면 다른 글을 쓸 수도 있습니다. 그동안 터미널의 모든 정규식을 사용 해보고 어떻게 작동하는지 명확하게 확인하는 것이 좋습니다. 기억하세요 : Chuck Norris만이 정규 표현식을 사용하여 HTML을 구문 분석 할 수 있습니다.


코멘트를 남겨주세요

귀하의 이메일 주소는 공개되지 않습니다. 필수 필드가 표시되어 있습니다 *

*

*

  1. 데이터 책임자 : Miguel Ángel Gatón
  2. 데이터의 목적 : 스팸 제어, 댓글 관리.
  3. 합법성 : 귀하의 동의
  4. 데이터 전달 : 법적 의무에 의한 경우를 제외하고 데이터는 제 XNUMX 자에게 전달되지 않습니다.
  5. 데이터 저장소 : Occentus Networks (EU)에서 호스팅하는 데이터베이스
  6. 권리 : 귀하는 언제든지 귀하의 정보를 제한, 복구 및 삭제할 수 있습니다.

  1.  

    정규식이 없으면 우리의 삶은 어떨까요?
    이 기사는 매우 유용하지만 조금씩 읽을 것입니다. 감사합니다.

    1.    Hexborg

      의견 감사합니다. 나는 아직도 내 기사가 나왔다고 생각하지 않는다. 🙂 약간의 오류가 나왔지만 유용하기를 바랍니다. 🙂

  2.   스 칼리버

    감사합니다 ..

    정규 표현식에 대해 조금 공부해야했던 지 오랜만이다 .. .. 정규 표현식을 가르쳐 주셔서 감사합니다. .. 각각을 배우기위한 단계별 가이드 ..

    아주 좋아! .. .. 아스피린 .. ee

    1.    Hexborg

      천만에요. 용기와 그 정규식은 당신과 함께 할 수 없습니다. 🙂

  3.   탄락스

    환상적인 포스트! 잘 했어. 얼마나 많은 시간이 걸 렸는지 궁금합니다 😀

    1.    Hexborg

      LOL !! 질문은 내가 말하려는 모든 것을 말했다면 얼마나 많은 시간이 걸렸을까요? 무한 !! 🙂

  4.   탐 무즈

    내가 몰랐던 한 가지 좋은 기사!

    1.    Hexborg

      감사합니다. 여러분과 공유하게되어 기쁩니다.

  5.   헬레나 류

    훌륭한 설명. 축하합니다! 정말 유용합니다!

    1.    Hexborg

      유용하다고 생각해서 다행입니다. 그래서 글을 쓰는 것이 즐겁습니다.

  6.   안티

    이것은 특별한 곳으로 가야합니다. Featured와 비슷하지만 매우 구체적인 유용성이 있습니다. Vim에 적용하고 싶지만 매우 유용합니다.

    1.    Hexborg

      그것은 나 자신에게 묻는 질문입니다. 마음에 정규 표현식에 대한 몇 가지 기사가 더 있습니다. 그리고 그들에서 vim에 대해 이야기 할 수 있습니다. 이 기사에서 설명한 것과 약간 다릅니다. 그것은 그것에 대한 문제입니다. 🙂

  7.   페르난도

    좋은!

    귀하의 기사는 매우 훌륭하고 궁금합니다. 최근 (지금) 저는 며칠 동안 정규 표현식에 대한 메타 문자 목록과 몇 가지 예를 수집한 항목을 내 웹 사이트에 게시했습니다. 그리고 들어가는 것이 공평했어요 DesdeLinux 같은 주제에 대한 항목을 확인하세요!

    위안이된다면 내 것이 훨씬 더 음모입니다 😀

    확실히 정규식은 가장 유용한 것 중 하나입니다. 저는 보통 그것들을 사용하여 명령의 출력을 자르고 관심있는 부분을 유지 한 다음 예를 들어 bash 스크립트에서 상호 작용합니다. 나는 또한 대학에서 그것들을 많이 사용했고, 컴파일러의 구성에서 매우 중요합니다 (어휘집과 파서의 정의에서). 요컨대, 전 세계입니다.

    인사와 아주 좋은 일.

    1.    Hexborg

      정말 감사합니다.

      나는 또한 당신의 기사를 좋아했습니다. 내 것보다 더 간결합니다. 빠른 참조로 사용할 수 있습니다. 우리가 동시에 쓴 것은 우연입니다. 사람들이 주제에 관심이 있음을 알 수 있습니다. 🙂

  8.   엘러리

    더미에 대한 정규식 =), 이제는 grep에 대한 색상으로 출력을 얻는 한 가지 방법은 .bashrc alias grep = 'grep –color = always'에 별칭을 만드는 것입니다. 누군가를 위해 작동합니다.

    안부

    1.    Hexborg

      진실. 그것은 그것을하는 또 다른 방법입니다. 입력 해 주셔서 감사합니다. 🙂

  9.   KZKG ^ 가아라

    O_O… 공헌 조각 !!! O_O ...
    게시물 주셔서 대단히 감사합니다. 잠시 기다렸어요 ㅋㅋ 집중도 번거 로움없이 집에서 차분하게 읽을 수 있도록 열어 두었습니다 ㅋㅋㅋ

    기사 주셔서 감사합니다. 정말 그렇습니다 😀

    1.    Hexborg

      나는 당신이 그것을 원한다는 것을 알고 있었다. LOL !! 사실 많은 것이 빠졌지 만 이미 두 번째 부분을 염두에두고 있습니다. 🙂

  10.   엘리에세르 테이테스

    대단한 기사, 어제 읽었 더라면 오늘 수업이 학생들에게 더 쉬웠을 것입니다!

    1.    Hexborg

      LOL !! 너무 늦었지만 도움이되어 기쁩니다. 🙂

  11.   레오토로

    드디어 !!!, 게시물이 너무 좋아요…. 드디어 정규 표현식을 명확하게 설명하는 것을 발견했습니다… ..

    1.    Hexborg

      많은 정보가 있지만 이해하기 쉬운 것을 찾는 것이 더 어렵습니다. 그 공백을 메워 서 기쁩니다. 🙂

      인사말.

  12.   셰익스피어 로즈

    도움이 필요합니다. yymmdd 형식으로 / var / logs에서 검색해야합니다. 로그는 130901.log -130901.log와 같습니다. 1 월 11 일부터 XNUMX 월 XNUMX 일 사이에있는 모든 항목을 검색해야합니다. , 내가 할 수 있었던 유일한 일은 XNUMX 월을 모두 제거하는 것이었지만 전체 체인을 수행하는 방법을 모릅니다.

    예 : 1309 [0-3]은 1 월 30 일부터 1 일 사이의 로그를 반환하지만 11 월 XNUMX 일부터 XNUMX 일까지 동일한 체인에서 가져 오는 방법도 모르겠습니다.

    1.    Hexborg

      정규 표현식을 사용하여 수행하는 것은 약간 복잡합니다. 다음과 같은 것이 작동 할 수 있습니다.

      13(09[0-3]|10(0|1[01]))

      확장 된 정규식입니다. 어떤 도구를 사용하고 있는지 말하지 않으셔서 더 자세한 정보를 드릴 수 없습니다.

      어쨌든 정규 표현식을 사용하는 대신 find를 사용하는 것이 더 낫다고 생각합니다. 다음과 같이 시도 할 수 있습니다.

      찾기. -newermt '01 11 월 '-a! -newermt 'XNUMX oct '-인쇄

      운. 이것이 당신을 도울 수 있기를 바랍니다.

  13.   치포

    안녕하십니까, 먼저이 페이지가 최고의 Linux 사이트 중 "상위 3"에 속하기 때문에 귀하의 작업에 감사드립니다.
    나는 연습을하고 있었고 전화 번호의 RegExp가 저에게 왜 효과가 없는지 몰랐고 "-E"를 놓치고 있었다는 것입니다 (이 게시물 덕분에 깨달았습니다).
    약간의 상상력으로 직접 발명을 연습 할 수 있지만 RegExp에 대한 연습이있는 좋은 pdf 나 사이트를 모르는 경우 물어보고 싶었습니다.

    안녕하세요, Pablo.

  14.   칼리

    아주 좋아, 나는 그것을 모두 읽었고, 그래 지금 나는 아스피린이 필요하다 🙂

  15.   오스카

    내가 본 정규식에 대한 최고의 설명입니다. 이 작업을 공유해 주신 저자에게 감사드립니다.

    인사말.

  16.   알렉세이 더

    정말 좋은 설명이 좋았어요