다음을 사용하여 "1"로 시작하는 줄을 검색해 보았습니다.
ls -1 | grep ^1*
그러나 1로 시작하지 않는 행을 반환합니다. 내가 여기서 무엇을 놓치고 있는 걸까요?
답변1
귀하의 정규식은 귀하가 생각하는 것을 의미하지 않습니다. (^)로 시작하고 한(1) 번 이상(*) 반복되는 모든 줄과 일치합니다. 모든 문자열은 이 정규식과 일치합니다. grep '^1'
당신이 원하는 것을하십시오.
답변2
다음을 시도해 보셨나요?
ls -1 | grep "^1"
즉, *
기본적으로 를 알려주는 제거는 해당 표현식이 grep
0개 이상 나타나는 것을 찾습니다 . ^1
즉, 1로 시작하는 행과 일치하는지 여부입니다.
답변3
이것이 귀하의 질문에 대한 답변은 아니지만 귀하의 목표에 더 나은 솔루션입니다.
ls -ld 1*
쉘 glob을 사용하여 모든 것을 나열할 수 있습니다 1
. *
쉘 와일드카드에서는 정규식과 다른 의미를 갖습니다.
답변4
^1.*은 전체 줄과 일치합니다. 또는 위에서 설명한 대로 ^1은 줄에 포함된 문자열을 가져옵니다.
다양한 스타일의 정규 표현식은 다양한 기호를 사용하여 문자를 나타내며 특정 옵션은 원하는 스타일을 지정합니다. 다양한 옵션은 전체 줄, 일부만 일치할지 또는 전체 입력을 문자열로 일치할지 여부를 지정합니다.