具有多列的 CSV 文件,使用循环打印每个列

具有多列的 CSV 文件,使用循环打印每个列

我的桌面上保存了一个包含许多列的 CSV 文件。 CSV 文件只有一行但有 195 列,我必须使用循环命令在 Unix 中打印每一列。文件的路径是/home/mobaxterm/Desktop/final_geneID.csv.我是新手,因此不知道该怎么办。如果有人有答案,请帮忙。

答案1

假设 CSV 数据集是一个无标头的 CSV 文件,具有默认的字段分隔符(逗号)和引号字符,您可以使用磨坊主mlr,一个用于处理结构化数据的 CSV 感知工具)通过循环迭代所有字段for并在单独的行上发出它们:

mlr --csv -N --from=file.csv put -q 'for (k,v in $*) { emit v }'

这会将文件读取file.csv为无标头 CSV 文件。对于每条记录,它都会迭代所有字段并依次发出每个字段。

使用以下示例数据:

A,B,"C,D",E,"F  G"

F...(其中和之间的空格G是文字制表符),这将输出以下内容:

A
B
"C,D"
E
F       G

请注意,输出仍为 CSV 格式,因此保留带有嵌入逗号的字段周围的双引号。您可以更改--csv--c2p将输出转换为“漂亮的打印格式”,该格式不引用带有嵌入逗号的字段。

相关内容