Что делает это регулярное выражение?

cd - на самом деле сокращение для cd "$OLDPWD" && pwd, где $OLDPWD устанавливается каждый раз, когда вы меняете каталоги в каталоге, в котором вы только что находились.

Обработка - зависит от приложения. Некоторые приложения используют - для обозначения STDIN, например. grep, awk

Другие приложения могут использовать - в качестве сокращения для всего, что они выбирают, как указывает ответ Майкла, с su, - в качестве сокращения для --login

1
17.06.2014, 21:13
2 ответа
  1. Что делает этот регекс? s?^//\s*??"

Удалите // и любые пробелы, следующие из начала строки в строках, содержащих сообщениеQueue.secretKey с:

  • вопросительным знаком ? , так как разделитель шаблонов
  • ^ совпадает с началом строки
  • // точно совпадает с тем (на заметке, которая является причиной использования вопросительного знака в качестве разделителя шаблонов, а не с более распространенным /, что предотвращает довольно сильный уход, потому что в противном случае регекс был бы s/^\/\/\s*//
  • \s* GNU sed специфичен для соответствия или большего количества пробелов пробел и/или вкладка ; POSIX sed будет использовать [: пробел:]

И @микшерв только что разместил еще более полный ответ. ..

1
27.01.2020, 23:28

На любой строке, содержащей строку messageQueue.secretKey, она удаляет строку // и последующие пробелы, если они существуют в начале строки, и заменяет первое появление на содержимое переменной оболочки ${MESSAGEQUEUESECRETKEY}. Кудряшки { ограничивают удаление/замену только строками , содержащими строку messageQueue.secretKey. Эти операции выполняются над файлом, на который ссылается переменная оболочки ${config_file}.

Обратные слеши \\\продолжают операцию в одну длинную строку - экранируя следующий сразу за \newline символ, когда скрипт считывается оболочкой. Три необходимы, так как они содержатся в двойных кавычках " и обратный слеш экранируется сам по себе в этом контексте. Таким образом, оболочка получает одну экранированную новую строку и sed получает одну экранированную новую строку. Хотя я не знаю об оболочке в этом контексте, я не верю, что sed будет все равно, если новые строки вообще не будут экранироваться.

2
27.01.2020, 23:28

Теги

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