что такое "" echo $PWD | Сэд?. *пользователей/[^/]\+/??' ""

Одно предложение:

x='Lorem ipsum dolor sit amet, consectetur '\
'adipiscing elit, sed do eiusmod tempor '\
'incididunt ut labore et dolore magna aliqua.'

Что приводит к ожидаемому:

$ printf '%s\n' "$x"
Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.
0
12.06.2019, 18:22
1 ответ

s?.*users/[^/]\+/?? разбивается следующим образом:

  • s— команда подстановки
  • ?(все три из них )являются разделителями выражений (поэтому приведенное выше может выглядеть так же:s@.*users/[^/]\+/@@). Общая форма такова:s/<match pattern>/<replacement>/<modifiers>. В этом случае в этой подстановке нет ни модификаторов, ни замены, поэтому все, что найдено по первому шаблону, будет удалено из потока.
  • .*users/[^/]\+/является шаблоном поиска и означает:

    • .*все, что предшествуетusers/
    • [^/]\+/за которым следует что-то, что не является\(по крайней мере одним таким, возможно, больше )и за этим следует один /.

    Таким образом, он нацелен на строку в пути, который начинается с usersи сопровождается одной подпапкой, например. /subfolder/.

И вот что осталось:

SAm/VELOCE/ML3P8/trunk

А вот и удаленная часть:

/proj/SAM1/users/ssudi/

/proj/SAM1/предшествовало users/, а затем последовало ssudi.

2
28.01.2020, 02:30

Теги

Похожие вопросы