우분투에서 "1"로 시작하는 Grep 줄

우분투에서 "1"로 시작하는 Grep 줄

다음을 사용하여 "1"로 시작하는 줄을 검색해 보았습니다.

ls -1 | grep ^1*

그러나 1로 시작하지 않는 행을 반환합니다. 내가 여기서 무엇을 놓치고 있는 걸까요?

답변1

귀하의 정규식은 귀하가 생각하는 것을 의미하지 않습니다. (^)로 시작하고 한(1) 번 이상(*) 반복되는 모든 줄과 일치합니다. 모든 문자열은 이 정규식과 일치합니다. grep '^1'당신이 원하는 것을하십시오.

답변2

다음을 시도해 보셨나요?

 ls -1 | grep "^1"

즉, *기본적으로 를 알려주는 제거는 해당 표현식이 grep0개 이상 나타나는 것을 찾습니다 . ^1즉, 1로 시작하는 행과 일치하는지 여부입니다.

답변3

이것이 귀하의 질문에 대한 답변은 아니지만 귀하의 목표에 더 나은 솔루션입니다.

ls -ld 1*

쉘 glob을 사용하여 모든 것을 나열할 수 있습니다 1. *쉘 와일드카드에서는 정규식과 다른 의미를 갖습니다.

답변4

^1.*은 전체 줄과 일치합니다. 또는 위에서 설명한 대로 ^1은 줄에 포함된 문자열을 가져옵니다.

다양한 스타일의 정규 표현식은 다양한 기호를 사용하여 문자를 나타내며 특정 옵션은 원하는 스타일을 지정합니다. 다양한 옵션은 전체 줄, 일부만 일치할지 또는 전체 입력을 문자열로 일치할지 여부를 지정합니다.

관련 정보