답변:
의 모든 정규 표현식 grep
이와 같은 것은 아닙니다 shell
. ?를 사용 하여 디스크를 나열하려면 다음을 사용하십시오.
fdisk -l | grep 'sd?*'
실제로 위의 내용은 다음과 같은 단순화 된 버전으로 달성 할 수 있습니다.
fdisk -l | grep sd
아마도 다음을 사용하려고했습니다 egrep
.
fdisk -l | grep sd..?
그러나 올바른 정규 표현식을 사용하는 것으로 충분할 수 있습니다.
fdisk -l | grep 'sd.\|sd..'
설명:
egrep
grep -E
다른 정규식 버전을 사용하는 것과 동일합니다 .
.
모든 문자를 의미
\|
수단 또는
남자 grep를보십시오 :
-E, --extended-regexp Interpret PATTERN as an extended regular expression (ERE, see below). grep understands three different versions of regular expression syntax: “basic” (BRE), “extended” (ERE) and “perl” (PCRE). In GNU grep, there is no difference in available functionality between basic and extended syntaxes. In other implementations, basic regular expressions are less powerful. The following description applies to extended regular expressions; differences for basic regular expressions are summarized afterwards. Perl-compatible regular expressions give additional functionality, and are documented in pcresyntax(3) and pcrepattern(3), but work only if PCRE is available in the system. The period . matches any single character. Alternation Two regular expressions may be joined by the infix operator |; the resulting regular expression matches any string matching either alternate expression.
egrep
. :) (2) 이후에 다른 작업을 수행합니다 touch sd..1 sd..2
. 이유를 알기를 바랍니다.
?
또는*
또는[…]
또는 발생하는 글 로빙 껍질을 wan't하지 않는 경우 쉘 글 로빙을 실행할 수있는 구문. 현재 디렉토리에sdb
and / or가 포함되어 있으면sda
출력 결과fdisk -l | grep sd[ab]
가 달라집니다. 당신이 의도를 전달하는 것을 얻을 어떤 대답?
이나*
에grep
따옴표에 넣어하지 않는 결함이 있습니다.