sed: что означает «/»?

x=`src/lstat64 $TEST_DIR/$tmp.1 | sed -n -e '/ Links: /s/.*Links: *//p'` 

В этом скрипте. Я понимаю эту часть "/s/.*Links: *//p'" единственное, что я не понимаю, это '/ Links: ' что означает "/ " ?

  • проверить рекурсивный поиск sed и заменить перед запуском
  • Как выбрать 30 файлов и сделать кучу sed команд на них
  • Как заменить строку на abc \\ efg [255 с помощью abc \\ efg [23 с помощью sed
  • Сед, не дающий первого появления картины
  • Что делает команда sed в строке ниже?
  • Как заменить строку строкой, содержащей слэш с sed?
  • Изменить строку с помощью Sed
  • заместитель char-to-char с sed
  • 3 Solutions collect form web for “sed: что означает «/»?”

    / Links: / – фильтр адресов. Это означает: «Применить следующую операцию только к тем линиям, которые соответствуют фильтру». В этом случае фильтр является регулярным выражением; это также может быть номер строки, область строки, начало регулярного выражения и комбинация повторного выражения и даже условие «каждая n-я строка» с некоторыми реализациями sed .

    У вас есть неправильное понимание. ваша команда может быть интерпретирована как:

     sed - n -e '/pattern/ s/pattern/replace pattern/p' 

    Таким образом, первые два / принадлежат /pattern/ , что означает соответствие регулярному выражению:

     /regexp/ Match lines matching the regular expression regexp. 

    единственное, что я не понимаю, это '/ Links:'

    Ваши выражения sed фильтруют строки, соответствующие шаблону Links: (с ведущим и конечным пространством) и выполняет замену

     s/.*Links: *// 

    Кроме того, использование -n подавляет автоматическую печать пространства шаблонов, а p печатает текущее пространство шаблонов.

    Подводя итог, sed конвейер будет печатать только строки, соответствующие Links: на входе после выполнения замены s/.*Links: *// .

    Цитата из man sed :

      -n, --quiet, --silent suppress automatic printing of pattern space p Print the current pattern space. /regexp/ Match lines matching the regular expression regexp. s/regexp/replacement/ Attempt to match regexp against the pattern space. If successful, replace that portion matched with replacement. The replacement may contain the special character & to refer to that portion of the pattern space which matched, and the special escapes \1 through \9 to refer to the corresponding matching sub-expressions in the regexp. 
    Linux и Unix - лучшая ОС в мире.