首次在文件中搜索特定字符串,然后在unix和类似文件中打印和后续行以供下次使用

时间:2018-06-08 12:48:11

标签: shell unix

好的。我会非常具体地说明我想要的东西。我需要编写一个处理大量文件的脚本,并且在这些文件中有以下类型的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的名称,订阅,NotificationTime。 通过这样做,我可以将这些值一行打印到另一行 grep -A 8&#34;&#34; * | grep&#39; name \ | subscription \ | NotificationTime&#39;

这次希望很清楚。

2 个答案:

答案 0 :(得分:0)

这可以通过

完成
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

修改 我想Tom Fenech所关联的是你在寻找什么。如果确实如此,这是一个重复的问题。

答案 1 :(得分:0)

这可以通过

来实现

grep -e name -e subscription -e NotificationTime filename.txt |切-d“&gt;” -f2 | cut -d“&lt;” -f1 |粘贴-d, - - -

使用粘贴命令,您可以将多个搜索的图案打印成具有任何特定分隔符的行。

描述 “粘贴 - : 组合N个连续行:粘贴命令还可用于将文件中的N个连续行合并为单行。这里N可以通过在粘贴后指定数字连字符( - )来指定。“