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

Было бы интересно узнать, что именно такие '[] *' и 'none []'. Вероятно, они содержат вкладку, а также пробел. – fedorqui

+0

Да, 1-я квадратная скобка - это пробел, а последние 2 - вкладка. – summithere

ответ

0

Это состоит из двух 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

 Смежные вопросы

  • Нет связанных вопросов^_^