複数の列を含むCSVファイル、ループを使用して各列を印刷する

複数の列を含むCSVファイル、ループを使用して各列を印刷する

多くの列を含むCSVファイルがデスクトップに保存されています。 CSVファイルには行が1つだけで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

関連情報