파일에서 g 또는 0에서 9 사이의 숫자로 시작하는 모든 줄을 어떻게 찾나요?
누구든지 명령줄을 도와줄 수 있나요? 시도해 보았는데 g로 시작하면 어떻게 해야 하는지 알지만 g와 0~9로 시작하면 어떻게 해야 할지 모르겠습니다.
답변1
이것은 정규 표현식과 함께 grep을 매우 간단하게 사용하는 것입니다. 이렇게 하면 됩니다:
grep -E '^[g0-9]' file.txt
어떤 부분에 도움이 필요한지 잘 모르겠지만 man grep
정규식을 읽고 이해하는 것이 좋습니다.
다음을 사용 하여 -E
"실제" 정규 표현식을 활성화 해야 합니다. grep
(자세한 내용은 "shell globbing"을 검색해 보세요.)
추신. 이 특정 검색의 경우 -E
부작용 없이 무시할 수 있습니다. 당신이 아니라면 놓치지 마세요알다무시할 수 있습니다. (댓글에서 볼 수 있듯이 일부 사람들이 이 문제에 매우 관심이 있기 때문에 이것을 언급하는 것뿐입니다.)
답변2
이와 같은 도구는 부울 OR( ) grep
을 이해하는 정규식을 사용합니다 .|
기본 정규식
grep '^g\|^[0-9]' file
확장 정규식
grep -E '^(g|[0-9])' file
Perl 호환 정규식
grep -P '^(g|\d)' file
또는 다른 도구를 사용할 수 있습니다.
sed
sed -n '/^g/p;/^[0-9]/p' file
또는
sed -En '/^(g|[0-9])/p' file
awk
awk '/^g|[0-9]/' file
perl
perl -ne 'print if /^(g|\d)/' file