Grep 정규 표현식이 더 이상 작동하지 않습니다.

Grep 정규 표현식이 더 이상 작동하지 않습니다.

이 질문이 주제에서 조금 벗어났다면 죄송합니다. 하지만 저는 이제 막 이틀 동안 Linux를 배우기 시작했고 이 문제를 해결할 지식이 전혀 없습니다. grep이 과일 목록에 대한 명령을 사용 하려고 합니다.여기이 표현을 계속 실험하기 전까지는 모든 것이 순조롭게 진행되었습니다 /.

밑줄이 있는 일종의 키 조합을 눌렀는데 이제 대부분의 정규 표현식이 엉망이 된 것 같습니다(어떤 방식으로든 중요한 경우 파일 이름에 밑줄이 그어져 있습니다). 예를 들어 다음과 같이 입력할 때:

cat fruits | grep ^ma

아무런 결과도 나오지 않고 mandarine나타나지 mango도 않습니다.

내가 입력할 때:

cat fruits | grep dam*

또는

cat fruits | grep dam

Damson나타나지 않았습니다. 게다가 터미널 오른쪽에 오류 십자가가 있습니다.

여기에 이미지 설명을 입력하세요.

다시 작동하게 하는 방법을 간략하게 설명해 줄 수 있는 사람이 있나요? 감사합니다!

답변1

정규식은 대소문자를 구분합니다. 파일에 Mandarine대문자가 포함되어 있지만 M로 시작하는 줄을 검색 중입니다 ma. 이 시도:

grep '^Ma' fruits

또한 정규식(RE)을 작은따옴표로 묶었습니다. 이는 쉘이 이를 처리되어야 하는 단어로 테스트하는 것을 방지합니다(예: 현재 디렉토리의 파일과 일치시키는 방법).

대소문자를 구분하지 않고 비교하려면 를 사용하세요 grep -i.

grep -i 'ma' fruits

답변2

예상치 못한 키 입력 조합으로 인해 bash 또는 dash 쉘이 손상되었을 수 있습니다. Bash와 해당 쉘(예: 대시)은 사용자가 입력한 내용을 커널이 이해할 수 있는 것으로 변환하는 고도로 구성 가능한 프로그램입니다.

대부분의 구성은 을 통해 수행되지만 /home/user/.bashrc키 조합만 필요한 동적 수정이 많이 있습니다. 일반적으로 터미널 창을 닫으면 이러한 수정 사항이 재설정됩니다.

source .bashrc특정 조건에서는 재설정에도 사용할 수 있습니다. 바라보다https://linuxhandbook.com/source-command/

관련 정보