fdisk -l | 와일드 카드를 포함한 grep 명령은 결과를 표시하지 않습니다


0

왜 명령

fdisk -l | grep sd? 
fdisk -l | grep sd?? 

이 상황에서는 작동하지 않습니다

fdisk -l | grep sd[ab] 

작동합니까?

터미널 창


우선 당신은 이러한 주장을 인용한다 ?또는 *또는 […]또는 발생하는 글 로빙 껍질을 wan't하지 않는 경우 쉘 글 로빙을 실행할 수있는 구문. 현재 디렉토리에 sdband / or가 포함되어 있으면 sda출력 결과 fdisk -l | grep sd[ab]가 달라집니다. 당신이 의도를 전달하는 것을 얻을 어떤 대답 ?이나 *grep따옴표에 넣어하지 않는 결함이 있습니다.
Kamil Maciorowski 님이

Nakini는 내 질문을 편집 해 주셔서 감사합니다 :] 카밀은 따옴표에 대한 교훈을 주셔서 감사합니다. Dziekuje Bardzo.
Tomas.R

답변:


1

의 모든 정규 표현식 grep이와 같은 것은 아닙니다 shell. ?를 사용 하여 디스크를 나열하려면 다음을 사용하십시오.

fdisk -l | grep 'sd?*'

실제로 위의 내용은 다음과 같은 단순화 된 버전으로 달성 할 수 있습니다.

fdisk -l | grep sd

자세한 답변 Nakini에 감사드립니다. 완벽하게 작동했습니다. Kamil 내가 제안한 것처럼 터치로 파일을 만들었지 만 fdisk -l | grep 'sd? *'는 해당 파일이 아닌 장치 만 반환했습니다.
Tomas.R

@ KamilMaciorowski, 나는 당신의 두 가지 우려에 동의합니다. 귀하의 의견으로 답변을 업데이트했습니다.
Nakini

0

아마도 다음을 사용하려고했습니다 egrep.

fdisk -l | grep sd..?

그러나 올바른 정규 표현식을 사용하는 것으로 충분할 수 있습니다.

fdisk -l | grep 'sd.\|sd..'

설명:

egrepgrep -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.

두 가지 문제 : (1) 첫 번째 예는을 사용하지 않습니다 egrep. :) (2) 이후에 다른 작업을 수행합니다 touch sd..1 sd..2. 이유를 알기를 바랍니다.
Kamil Maciorowski
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.