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/5/bash/18.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文件中提取文件名(不带扩展名)_Xml_Bash_Sed_Awk - Fatal编程技术网

从XML文件中提取文件名(不带扩展名)

从XML文件中提取文件名(不带扩展名),xml,bash,sed,awk,Xml,Bash,Sed,Awk,当我grep“Server”时,我有以下XML输出: 假设数据位于文件“test.data”中,使用awk和sed很简单: 假设数据位于文件“test.data”中,使用awk和sed很简单: 对于示例输入数据,以下sed脚本将起作用: sed -e 's/.*\/\(.*\)\.xml.*/\1/g' t.tmp *\/与正斜杠(贪婪)匹配。然后,\(.*)\.xml匹配行的最后一行,并获取组中的基本文件名。\1告诉它用所有这些替换组中的数据。对于示例输入数据,以下sed脚本将起作用: se

当我grep“Server”时,我有以下XML输出:


假设数据位于文件“test.data”中,使用awk和sed很简单:


假设数据位于文件“test.data”中,使用awk和sed很简单:


对于示例输入数据,以下sed脚本将起作用:

sed -e 's/.*\/\(.*\)\.xml.*/\1/g' t.tmp

*\/
与正斜杠(贪婪)匹配。然后,
\(.*)\.xml
匹配行的最后一行,并获取组中的基本文件名。
\1
告诉它用所有这些替换组中的数据。

对于示例输入数据,以下sed脚本将起作用:

sed -e 's/.*\/\(.*\)\.xml.*/\1/g' t.tmp

*\/
与正斜杠(贪婪)匹配。然后,
\(.*)\.xml
匹配行的最后一行,并获取组中的基本文件名。
\1
告诉它用所有这些来代替组中的内容。

接受的答案可以简化,而不需要无用的cat和sed

awk '{gsub(/\..*/,"",$5) ;print $5}' file

接受的答案可以简化,没有无用的cat和sed

awk '{gsub(/\..*/,"",$5) ;print $5}' file

如果您的源是XML文档,那么使用XSLT/XPath怎么样?您正在使用什么操作系统?如果您的源代码是XML文档,那么使用XSLT/XPath如何?你在做什么操作系统?
awk '{gsub(/\..*/,"",$5) ;print $5}' file
>gawk -F"/" "{ split($5,a,\".\"); print a[1]}" 1.t
PRX01
PRX02
PRX03
PRX04