Любопытно, есть ли способ показать результат между двумя маркерами?
Я пытался grep -r "<cron_expr>.*</run>" *
, но он, похоже, не возвращается, как ожидалось. Что означает, что он не показывает переходы на новую строку?
Итак, я думаю, что реальный вопрос заключается в том, как я могу узнать, что между двумя маркерами, независимо от новой строки BS. Я не могу установить эту систему, поэтому нет pcregrep = (
Возможно, AWK?
(Ps кто-то должен сделать AWK-тэг)
<crontab>
<jobs>
<enterprise_reward_balance_warning_notification>
<schedule><cron_expr>1 * * * *</cron_expr></schedule>
<run><model>enterprise_reward/observer::scheduledBalanceExpireNotification</model></run>
</enterprise_reward_balance_warning_notification>
<enterprise_reward_expire_points>
<schedule><cron_expr>1 * * * *</cron_expr></schedule>
<run><model>enterprise_reward/observer::scheduledPointsExpiration</model></run>
</enterprise_reward_expire_points>
</jobs>
</crontab>
I просто хочу показать, что на линии <schedule>
и <run>
(s, если более одного, как и выше) в любое время, когда я вижу и в каком файле они находятся.
Скрипт AWK
AWK, вероятно, является ответом с использованием / start /, / stop / pattern следующим образом:
/<schedule>/,/<\/schedule>/ {
print;
}
/<run>/,/<\/run>/ {
print;
}
Это будет печатать все в расписании и запускать теги (включая теги) и сохранит новые строки. Адаптируйте его, чтобы распечатать то, что вам нужно. Для запуска:
cat myfile.txt | awk -f script.awk
AWK script
Вот версия XSLT, которая должна делать что-то очень похожее. Запустите его с помощью xsltproc, который должен быть установлен по умолчанию.
<?xml version="1.0" encoding="ISO-8859-1"?>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:template match="schedule">
<xsl:value-of select="." />
</xsl:template>
<xsl:template match="run">
<xsl:value-of select="." />
</xsl:template>
</xsl:stylesheet>
Скрипт AWK
AWK, вероятно, является ответом с использованием / start /, / stop / pattern следующим образом:
/<schedule>/,/<\/schedule>/ {
print;
}
/<run>/,/<\/run>/ {
print;
}
Это будет печатать все в расписании и запускать теги (включая теги) и сохранит новые строки. Адаптируйте его, чтобы распечатать то, что вам нужно. Для запуска:
cat myfile.txt | awk -f script.awk
Таблица стилей XSLT
Вот версия XSLT, которая должна делать что-то очень похожее. Запустите его с помощью xsltproc, который должен быть установлен по умолчанию.
<?xml version="1.0" encoding="ISO-8859-1"?>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:template match="schedule">
<xsl:value-of select="." />
</xsl:template>
<xsl:template match="run">
<xsl:value-of select="." />
</xsl:template>
</xsl:stylesheet>
Скрипт AWK
AWK, вероятно, является ответом с использованием / start /, / stop / pattern следующим образом:
/<schedule>/,/<\/schedule>/ {
print;
}
/<run>/,/<\/run>/ {
print;
}
Это будет печатать все в расписании и запускать теги (включая теги) и сохранит новые строки. Адаптируйте его, чтобы распечатать то, что вам нужно. Для запуска:
cat myfile.txt | awk -f script.awk
Таблица стилей XSLT
Вот версия XSLT, которая должна делать что-то очень похожее. Запустите его с помощью xsltproc, который должен быть установлен по умолчанию.
<?xml version="1.0" encoding="ISO-8859-1"?>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:template match="schedule">
<xsl:value-of select="." />
</xsl:template>
<xsl:template match="run">
<xsl:value-of select="." />
</xsl:template>
</xsl:stylesheet>
Есть много способов сделать то, что, как я думаю, вам тоже нужно.
вы могли бы использовать sed
, я хотел бы получить числа между lspci -nn
он выплескивает числа, подобные этому
[1234: 4321]
Я бы сделал это
lspci -nn| sed 's/.*\[\(.*\)\].*/\1/'
Это мой первый пост здесь поэтому я надеюсь, что символ побега верен. Но я не уверен, что вы пытаетесь сделать.
Есть много способов сделать то, что я думаю, что вы тоже этого хотите.
вы могли бы использовать sed
, я хотел бы получить числа между lspci -nn
он выплескивает числа, подобные этому
[1234: 4321]
Я бы сделал это
lspci -nn| sed 's/.*\[\(.*\)\].*/\1/'
Это мой первый пост здесь поэтому я надеюсь, что символ побега верен. Но я не уверен, что вы пытаетесь сделать.