创建BASH脚本以从XML文件检索数据



我有一个XML文件:

<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<List>
    <Job id="1" name="John/>
    <Job id="2" name="Zack"/>
    <Job id="3" name="Bob"/>
</List>

我想创建一个bash脚本,其中它从特定名称中拉出ID号。例如,请求约翰会排名第一。

解析XML文件时,请使用了解 XML的工具。您可以使用xmlstarlet

例如,说:

xmlstarlet sel -t -v "/List/Job[@name="John"]/@id" file.xml

会产生

1

顺便说一句,您的输入不正确。您在

中缺少报价
<Job id="1" name="John/>

应该是

<Job id="1" name="John"/>

尝试

之类的东西
#!/bin/bash
name="$1"
while read -r line; do
  [[ $line =~ "name="$name"" ]] && [[ $line =~ "Job id=""([^"]+) ]] &&  echo "${BASH_REMATCH[1]}"
done < file 

例如。如果file是您的XML,John已修复。

> ./abovescript John
1
> ./abovescript Zack
2
> ./abovescript Bob
3

相关内容

  • 没有找到相关文章

最新更新