나는 pwd의 내용을 나열하고 dot로 시작하는 파일 만 표시하고 싶었습니다. 시도 ls -a | grep ^\.
했지만 출력에 점으로 시작하지 않는 파일도 왜 포함되어 있는지 알 수 없습니다. 예를 들면 다음과 같습니다.
Pictures
.pip
.pki
.profile
projects
Public
나는 내가 원하는 것을 달성 할 수 있다는 것을 알고있다. 나는 ls -ld .*
설명 할 수없는이 grep의 행동에 대해 궁금하다.
답변
인수를하는 견적 grep
따라서,ls -a | grep '^\.'
그 이유는 쉘 핸들이다 \.
교대가 일반에 백업 .
, 이는 grep
다음 단일 문자 와일드 카드로 취급합니다. 의심스러운 경우, 항상 쉘에 특수한 문자를 포함하거나 포함 할 수있는 문자열을 인용하십시오.
답변
답변
cmd ls -a | grep ^ \. grep은 “\”를 “.”의 특수 문자 및 의미로 간주하지 않습니다. 탈출하지 마십시오.
cmd ls -a | grep “^ \.” grep은 “\”를 “.”의 특수 문자 및 의미로 간주합니다. 탈출. 예상대로 결과를 제공합니다.
따옴표없이 grep cmd를 사용하려면 “\”문자도 이스케이프해야합니다. 다음 명령으로 큰 따옴표없이 결과를 기대할 수 있습니다.
LS -a | grep ^ \\.
Regex에서 특수 문자의 의미에 대한 자세한 내용은 다음 링크를 참조하십시오.
http://www.regular-expressions.info/quickstart.html