从每个CSV行提取特定的单元格内容到awk中的文件



我有一个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又是创纪录的数字。

相关内容

  • 没有找到相关文章

最新更新