2016-10-21 4 views
1
grep -i "^--[ ]*dependency" "$dir/${script[${array_len}]}"|grep -v -i ":[  ]*none[   ]*$" 
+0

정확히 [] *와 [없음 []이 무엇인지 아는 것이 흥미로울 것입니다. 그들은 아마 공간뿐만 아니라 탭을 포함 할 것입니다. – fedorqui

+0

예, 첫 번째 대괄호는 공백이며 마지막 두 개는 탭입니다. – summithere

답변

0

이 두 grep 표현에있다, 그래서 하나씩을 확인하자 :이 패턴 "^--[ ]*dependency" 일치하는 모든 라인을 확인

  • grep -i "^--[ ]*dependency"

. 이 패턴은 다음과 같습니다 : --으로 시작하고 그 뒤에 공백 (0, 1 또는 다수)이오고 그 다음에 텍스트가 대소 문자를 구분하지 않고 dependency이 오는 행이 (^)입니다.

는 작업 방법을 참조하십시오 :이 패턴 ":[ ]*none[ ]*$" 일치하지 않는 모든 라인을 확인

$ cat c 
--   dependency 
--dependency 
-dependency 
$ grep -i "^--[ ]*dependency" c 
--   dependency 
--dependency 
  • grep -v -i ":[ ]*none[ ]*$"

.

이 패턴 말한다 탭 (0, 1 또는 다수의) 임의의 양이어서 : 함유 라인 다음 텍스트 none 대소 문자 구별 마지막 행을 종료 할 임의의 탭의 양 (0, 1 또는 다수).

은 모두 함께,이 -- + 공간 + dependency: + 탭 + none + 탭 끝나는로 시작하는 라인을 검사한다.


각주. 플래그는 여기 grep에 사용 :

  • -i는 패턴과 입력 파일 모두에서 사례 구분을 무시합니다.
  • -v 일치하지 않는 줄을 선택하려면 일치 감을 뒤집습니다.
+1

답변 주셔서 감사합니다, 지금은 꽤 분명해 :) – summithere