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

「[] *」と「none []」が正確に分かるのは興味深いでしょう。おそらくタブとスペースが含まれています。 – fedorqui

+0

はい、最初の角括弧はスペースで、最後の2つはタブです。 – summithere

答えて

0

これは、2つのgrep表現で構成され、その者が次々にチェックしてみましょう:

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

これはパターン"^--[ ]*dependency"に一致するすべての行をチェックします。このパターンは、--で始まり、その後にスペース(0,1または多く)が続き、その後に大文字小文字を区別しないテキストdependencyが続く行(^)を示します。

は、それが働いて参照してください:

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

これはパターン":[ ]*none[ ]*$"に一致しないすべての行をチェックします。

このパターンでは、:の後ろに任意の量のタブ(0,1または多く)が続き、その後はテキストnoneが大文字と小文字を区別せず、最終的には行を終了する任意の量のタブ(0,1または複数)があります。

はすべて一緒に、これは-- +スペース+ dependency: +タブ+ none +タブで終わらないで始まる行をチェックしています。


脚注。ここgrepで使用されるフラグ:

  • -iは、パターンと入力ファイルの両方での小文字の区別を無視します。
  • -v不一致の行を選択するには、一致の感覚を反転させます。
+1

答えをありがとう、それは今かなりきれいです:) – summithere

関連する問題