양쪽에 콜론이있는 모든 길이의 영숫자 문자열에 대한 grep


14

각면에 콜론을 사용하여 1-50 자의 영숫자 문자열 (이상적으로는 모든 길이도 작동 함)을 grep하는 방법 – 일반적인 결과는 string을 포함하는 모든 줄 :shopping:입니다. 지금까지 작동하지 않는 아래 코드가 있습니다 (일부 변형을 시도했습니다).

grep ':[[:alnum:]]{1,100}:' ~/x.txt

스위치 grep를 포함하여 확장 정규식 기능을 활성화하기 만하면 -E됩니다.
slm

답변:


13

이를 위해 확장 정규식을 활성화해야합니다.

grep -E ':[[:alnum:]]+:' ~/x.txt

4

기본 정규 표현식을 사용하면 다음과 같이 작성할 수 있습니다.

grep ':[[:alnum:]]\{1,100\}:' ~/x.txt

그 주 \{(반대 \+또는 \?예를 들어) 표준 및 휴대용, 그리고 실제로 BRE 등가물 +?일반적으로 작성됩니다 \{: \{1,\}\{0,1\}. grep -E또한 표준이며 이식성이 뛰어나므로 이러한 경우 더 읽기 쉬운 정규 표현식을 만들 수 있으므로 사용할 수도 있습니다.


1

확장 된 정규 표현식을 사용하므로 -E 옵션을 사용해야합니다.

grep -E ':[[:alnum:]]{1,100}:' ~/x.txt

감사! 제목에 "이상적인"스크립트를 작성하지 않았기 때문에 다른 답변을 올바르게 입력했으며, 답변을 Google에 보낸 사람들이 잘못된 답변을 붙여 넣지 못하게하고 싶지만 귀하의 답변을 사용하겠습니다. :)

1
@TorThommesen-Q의 제목이 정확하지 않으면 편집 할 수 있습니다.
slm

0

아무도 다른 사람을 언급하지 않기 때문에, 당신은 또한 사용할 수 있습니다 egrep내가 그것을 이해에 해당하는, grep -E.

egrep ':[[:alnum:]]{1,100}:' ~/x.txt

1
egrepERE와 grep하는 역사적 명령이었습니다. grep 및 egrep의 기능은 그 이후로 -E 옵션을 사용하여 grep에 병합되었습니다. egrep이제는 더 이상 사용되지 않거나 더 이상 사용되지 않는 것으로 간주됩니다 (그러나 일부 사람들이 여전히 익숙해지지는 않습니다).
Stéphane Chazelas
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.