Первый раз найдите в файле определенную строку, а в следующий раз напечатайте и последующие строки в unix и аналогичные строки - PullRequest
0 голосов
/ 08 июня 2018

Хорошо. Я буду очень конкретен с тем, что хочу. Мне нужно написать скрипт, который обрабатывает множество файлов, и в этих файлах он имеет следующий тип xmls:

<NotificationList>   
    <Name>Postpaid</Name>
    <Amount>5.0</Amount>
    <IsRecurring>0</IsRecurring>
    <ThresholdLimit>5.0</ThresholdLimit>
    <ObjectType>1</ObjectType>
    <subscription>1010984</subscription>
    <NotificationTime>2018-05-> 
    31T00:18:46.000000+01:00</NotificationTime>

Мне нужно получить имя, подписку, время уведомления для каждого XML в столбце.Я могу напечатать эти значения в строках одна под другой, выполнив grep -A 8 "" * |grep 'name \ | subscription \ | NotificationTime'

Надеюсь, на этот раз все ясно.

Ответы [ 2 ]

0 голосов
/ 11 июня 2018

Это может быть достигнуто с помощью

grep -e name -e subscription -e NotificationTime filename.txt |cut -d ">" -f2 |cut -d "<" -f1 |paste -d, - - - </p>

Используя команду вставки, вы можете напечатать несколько найденных образцов в строку с любыми определенными разделителями.

Описание "paste -: Объединение N последовательных строк: команда вставкитакже может использоваться для объединения N последовательных строк из файла в одну строку. Здесь N можно указать, указав число дефисов (-) после вставки. "

0 голосов
/ 09 июня 2018

Это можно сделать с помощью

grep -rnw '/path/to/file/file.format' -e "Hello this is the"

Если вы вставляете уведомление из другой команды в текстовый файл, вы можете добавить комментарий, чтобы упростить поиск или синтаксис уведомления, как показано выше.

#You can add comment for notification which will make it easy to find all notifications by tag.

#Hello notification
Hello instance 1
#Navigation notification
Turn right instance 1
#Hello notification
Hello instance 2

РЕДАКТИРОВАТЬ: Я думаю, что Том Фенек связан с тем, что вы ищете.Если это действительно так, это дублирующий вопрос.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...