Назад | Перейти на главную страницу

Как работает эта команда sed?

Мне нужно напечатать текст между двумя текстовыми фрагментами. Я нашел такой пример, который делает именно то, что я хочу, но не понимаю, как это делается. Погуглить сложно, потому что команда не содержит букв)

sed -n '/hostname/,/$/p' /tmp/ambari-agent.ini

hostname = localhost

Как я понял, здесь я печатаю текст между hostname и конец строки. p опция печатает образец для вывода. Но почему у меня здесь три группы и что здесь означает кома?

Почти всегда в первую очередь следует искать страницы руководства. Их часто трудно читать, но информация есть.

Со страницы руководства p Print the current pattern space., это в подразделе Commands which accept address ranges. Это легко приведет вас к мысли, что вы указываете диапазон начального и конечного адресов с помощью регулярных выражений, см. Addresses раздел. Так /hostname/ это начало и /$/ это конец. В $ - специальный символ, обозначающий конец строки.