Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/xml/13.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/shell/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Xml Extart-jtl文件通过shell获取一些字符串作为变量_Xml_Shell - Fatal编程技术网

Xml Extart-jtl文件通过shell获取一些字符串作为变量

Xml Extart-jtl文件通过shell获取一些字符串作为变量,xml,shell,Xml,Shell,如下: <httpSample t="488" lt="488" ts="1434602824074" s="true" lb="https://errata-web.app.qa.eng.nay.redhat.com/errata/change_state/20872" rc="302" rm="" tn="" dt="text" by="1271" ng="0" na="0"/> 我想提取“ts”和“t”的值,以便仅通过bash进行一些处理。 我怎么能做到 $var1

如下:

 <httpSample t="488" lt="488" ts="1434602824074" s="true" lb="https://errata-web.app.qa.eng.nay.redhat.com/errata/change_state/20872" rc="302" rm="" tn="" dt="text" by="1271" ng="0" na="0"/>

我想提取“ts”和“t”的值,以便仅通过bash进行一些处理。 我怎么能做到

$var1=<httpSample t="488" lt="488" ts="1434602824074" s="true" lb="https://errata-web.app.qa.eng.nay.redhat.com/errata/change_state/20872" rc="302" rm="" tn="" dt="text" by="1271" ng="0" na="0"/>
用于存储在变量中:

t=`echo $var1 | tr '=' ' '| cut -d' ' -f 3`
ts=`echo $var1 | tr '=' ' '| cut -d' ' -f 7`
现在您可以通过以下方式查看内容:echo$t
如果您不知道t的位置,请执行以下操作:

echo $var1 | sed s/t=/#/g | cut -d'#' -f2 | cut -d' ' -f1
用于存储在变量中:

t=`echo $var1 | tr '=' ' '| cut -d' ' -f 3`
ts=`echo $var1 | tr '=' ' '| cut -d' ' -f 7`
现在您可以通过以下方式查看内容:echo$t
如果您不知道t的位置,请执行以下操作:

echo $var1 | sed s/t=/#/g | cut -d'#' -f2 | cut -d' ' -f1

听起来像是awk的工作。你应该能够做到这一点后,遵循一个基本的教程。听起来像一个工作的awk。你应该能够做到这一点后,遵循一个基本的教程。谢谢。但实际上,“ts=”和“t=”的位置可以根据用户的设置进行更改。我们最好不要按位置来计算它的价值。你有什么建议吗?@wlin我为这种情况增加了一行,请看一看。聪明!谢谢亲爱的,它解决了问题。但是我们是否有更好的方法。1当文件中有“#”时,脚本将失败。2当用户的设置更改并且出现“rt=”456“时,脚本仍将失败。谢谢亲爱的。我也认为“awk”甚至“greo-oP”都可以很好地工作,但我不知道它们是如何工作的。示例“ubuntuforums.org/showthread.php?t=2187389”仍然使用“$2”位置来获取第二个文件值。我们需要搜索更多。谢谢。但实际上,“ts=”和“t=”的位置可以根据用户的设置进行更改。我们最好不要按位置来计算它的价值。你有什么建议吗?@wlin我为这种情况增加了一行,请看一看。聪明!谢谢亲爱的,它解决了问题。但是我们是否有更好的方法。1当文件中有“#”时,脚本将失败。2当用户的设置更改并且出现“rt=”456“时,脚本仍将失败。谢谢亲爱的。我也认为“awk”甚至“greo-oP”都可以很好地工作,但我不知道它们是如何工作的。示例“ubuntuforums.org/showthread.php?t=2187389”仍然使用“$2”位置来获取第二个文件值。我们需要更多的搜索。