Мне нужно напечатать текст между двумя текстовыми фрагментами. Я нашел такой пример, который делает именно то, что я хочу, но не понимаю, как это делается. Погуглить сложно, потому что команда не содержит букв)
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/
это начало и /$/
это конец. В $
- специальный символ, обозначающий конец строки.