BASH脚本遍历XML文件中的ID列表并将名称打印/输出到shell或输出文件?

迈克·J

我正在寻找遍历与XML文件中的ID号匹配的ID号列表,并使用BASH(和AWK)将以下行打印到shell或将其重定向到第三个输出文件(output.txt)

这是细分:

ID_list.txt(此示例缩写-它具有100个ID)

4414
4561
2132
999
1231
34
489
3213
7941

XML_example.txt(数千个条目)

<book>
  <ID>4414</ID>
  <name>Name of first book</name>
</book>
<book>
  <ID>4561</ID>
  <name>Name of second book</name>
</book>

我希望脚本的输出是第一个文件中100个ID的名称:

Name of first book
Name of second book
etc

我相信可以使用带有for循环的BASH和AWK来做到这一点(对于文件1中的每个文件,在file2中找到对应的名称)。我认为您可以检索GREP以获取ID号,然后使用AWK打印它下面的行。即使输出看起来像这样,我也可以在之后删除XML标签:

<name>Name of first book</name>
<name>Name of second book</name>

它在Linux服务器上,但是我可以将其移植到Windows上的PowerShell。我认为BASH / GREP和AWK是必经之路。

有人可以帮我编写脚本吗?

Dogbane

这是一种方法:

while IFS= read -r id
do
    grep -A1 "<ID>$id</ID>" XML_example.txt | grep "<name>"
done < ID_list.txt

这是另一种方式(单线)。这效率更高,因为它使用单个grep提取所有id,而不是循环:

egrep -A1 $(sed -e 's/^/<ID>/g' -e 's/$/<\/ID>/g' ID_list.txt | sed -e :a -e '$!N;s/\n/|/;ta' ) XML_example.txt | grep "<name>"

输出:

<name>Name of first book</name>
<name>Name of second book</name>

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

打印输出到文件的内部脚本| Python

来自分类Dev

在csv文件python中打印输出

来自分类Dev

Shell脚本从输入文件中获取部分文件名并将其转换为输出文件

来自分类Dev

将名称和数字输出到文件C ++

来自分类Dev

Shell命令循环输出文件的名称

来自分类Dev

如何遍历字典并将键的名称写为输出文件的名称?

来自分类Dev

如何在python中的循环中打印图像名称并将所有打印输出到excel

来自分类Dev

在Bash脚本中获取输出文件名

来自分类Dev

从 PowerShell 脚本创建 XML 输出文件

来自分类Dev

打印输出到屏幕不同于输出到文件

来自分类Dev

Power Shell脚本输出到txt文件

来自分类Dev

遍历目录并将文件名输出到txt文件

来自分类Dev

VLC bash转码脚本输出到文件

来自分类Dev

使用 biopython 从输出文件中的 fasta 文件标题打印物种名称(对于多个文件)

来自分类Dev

在外部调用Python脚本并将stdout / stderr登录到文件中时,Python脚本打印输出仅出现在执行结束时

来自分类Dev

强制输出到批处理脚本中的控制台,并将输出重定向到文件

来自分类Dev

在BASH中以两列输出文件

来自分类Dev

PDSH脚本输出文件

来自分类Dev

通过比较Shell脚本中的2个文件来生成输出文件

来自分类Dev

在 Bash 脚本中连接文本和命令输出以输出到文件

来自分类Dev

Python:从XML文件中查找和删除子级并将其输出到新文件

来自分类Dev

如何将Powershell函数的输出输出到txt等输出文件中?

来自分类Dev

在表/字符串中运行SQL脚本并将结果输出到文件

来自分类Dev

如何在shell脚本中给出文件的输出位置?

来自分类Dev

存档中的输出文件

来自分类Dev

Python中的输出文件

来自分类Dev

将arraylist打印到输出文件中?

来自分类Dev

将arraylist打印到输出文件中?

来自分类Dev

Bash如何初始化变量并将其值输出到一行中的文件

Related 相关文章

  1. 1

    打印输出到文件的内部脚本| Python

  2. 2

    在csv文件python中打印输出

  3. 3

    Shell脚本从输入文件中获取部分文件名并将其转换为输出文件

  4. 4

    将名称和数字输出到文件C ++

  5. 5

    Shell命令循环输出文件的名称

  6. 6

    如何遍历字典并将键的名称写为输出文件的名称?

  7. 7

    如何在python中的循环中打印图像名称并将所有打印输出到excel

  8. 8

    在Bash脚本中获取输出文件名

  9. 9

    从 PowerShell 脚本创建 XML 输出文件

  10. 10

    打印输出到屏幕不同于输出到文件

  11. 11

    Power Shell脚本输出到txt文件

  12. 12

    遍历目录并将文件名输出到txt文件

  13. 13

    VLC bash转码脚本输出到文件

  14. 14

    使用 biopython 从输出文件中的 fasta 文件标题打印物种名称(对于多个文件)

  15. 15

    在外部调用Python脚本并将stdout / stderr登录到文件中时,Python脚本打印输出仅出现在执行结束时

  16. 16

    强制输出到批处理脚本中的控制台,并将输出重定向到文件

  17. 17

    在BASH中以两列输出文件

  18. 18

    PDSH脚本输出文件

  19. 19

    通过比较Shell脚本中的2个文件来生成输出文件

  20. 20

    在 Bash 脚本中连接文本和命令输出以输出到文件

  21. 21

    Python:从XML文件中查找和删除子级并将其输出到新文件

  22. 22

    如何将Powershell函数的输出输出到txt等输出文件中?

  23. 23

    在表/字符串中运行SQL脚本并将结果输出到文件

  24. 24

    如何在shell脚本中给出文件的输出位置?

  25. 25

    存档中的输出文件

  26. 26

    Python中的输出文件

  27. 27

    将arraylist打印到输出文件中?

  28. 28

    将arraylist打印到输出文件中?

  29. 29

    Bash如何初始化变量并将其值输出到一行中的文件

热门标签

归档