我有一个csv文件,混合了csv和xml,在某种程度上,一些csv列包含xml。
我需要将每个xml提取到文件中以便进一步处理。
v1,v2, v3, v4, v5
a,<xml>.....</xml>,alberta, 2012, 2021
b,<xml>.....</xml>,manitoba, 2021,2022
......
我的第一种方法是使用awk,但不是很精通它,这是提取所有列。我想把每个单元格放入一个新文件。
awk '{print $2}' file.csv > outfile
这取决于XML块中的数据可能非常脆弱,但如果您的特殊情况允许,您可以使用以下命令(需要GNUawk
,请参阅Ed Morton的注释以获得更多观察结果):
awk -F, 'NR > 1 { print $2 > "xml-" (NR-1) ".xml" }' temp.csv
-F,
将字段分隔符设置为逗号NR > 1
将跳过标题,通过将大括号{}
之间的逻辑应用于索引大于1的记录(文件中的每一行都是记录)print $2 >
将把记录中的第二个字段打印到文件"xml-" (NR-1) ".xml"
使用并置表示的字符串连接构建文件名。NR
又是创纪录的数字。