unix csv文件中的列更改顺序

时间:2017-09-28 14:34:14

标签: csv unix solaris

我想在Solaris unix上更改下面csv中的列顺序。原样:

cat mytest.csv
NAME,22015731,Fri Sep 01 05:30:21 2017,Fri Sep 01 05:45:26 2017

所需:

cat mytest.csv
NAME,Fri Sep 01 05:30:21 2017,Fri Sep 01 05:45:26 2017,22015731

如何做到这一点?

如果可能的话,我该如何为当前目录中的多个文件执行此操作?

谢谢!

2 个答案:

答案 0 :(得分:2)

awk -F,' {print $ 1"," $ 3"," $ 4"," $ 2}' mytest.cvs

应该有效。这是基本的unix。 -F选项允许您选择行中字段的分隔符。

答案 1 :(得分:0)

awk '{print $1,$3,$4,$2}' FS=, OFS=, mytest.csv > tmp; mv tmp mytest.csv

要处理多个文件,请编写一个循环:

for file in $(generate-list-of-files): do
  ...
done