我的桌面上保存了一个包含许多列的 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
将输出转换为“漂亮的打印格式”,该格式不引用带有嵌入逗号的字段。