使用xmlstarlet -f

时间:2016-05-06 08:25:46

标签: xml linux bash shell xmlstarlet

我有以下命令:

cat PathFiles.txt | xargs xml sel -T -t -f -m /XML/Path -v "concat(value1,',',value2)" -n > test.csv

PathFiles.txt包含.xml文件

COLORADO.xml
ALASKA.xml
CALIFORNIA.xml
WASHINGTON.xml
OREGON.xml

它会像这样输出:

#test.csv
COLORADO.xmlvalue1,value2
value1,value2
value1,value2
value1,value2
ALASKA.xmlvalue1,value2
value1,value2
value1,value2
value1,value2
...etc 

我的问题是COLORADO.xmlvalue1,value2 ALASKA.xmlvalue1,value2,当我需要它时

COLORADO.xml 
value1,value2
value1,value2
value1,value2
value1,value2
ALASKA.xml
value1,value2
value1,value2
value1,value2
value1,value2

引用回xml sel -f用于输出文件名,我觉得我需要在我要分开的内容之间换行符(?)。我试过-f \n但是没有用,然后我发现我已经在-n命令的末尾使用了换行符xml sel。这可能吗?我是否应该考虑输出到.txt并使用grep或awk来分离它?

1 个答案:

答案 0 :(得分:1)

  

引用回xml sel -f用于输出文件名,我觉得我需要在我要分开的内容之间换行符(?)。我试过-f \n但是没有用,然后我发现我已经在-n命令的末尾使用了换行符xml sel

-n

之后添加另一个-f命令
< PathFiles.txt xargs xml sel -T -t -f -n -m /XML/Path -v "concat(value1,',',value2)" -n > test.csv