LinuxSir.cn,穿越时空的Linuxsir!

 找回密码
 注册
搜索
热搜: shell linux mysql
查看: 966|回复: 3

问个脚本,交换CSV中前后两个字段。

[复制链接]
发表于 2010-4-5 21:37:36 | 显示全部楼层 |阅读模式
有一个CSV文件,字段之间用逗号隔开,一行有靠近一百多个字段,总共有上千条数据,现在想交换第二列和第三列的数据,如何在shell下面做?awk或者sed都可以。
发表于 2010-4-5 22:34:29 | 显示全部楼层
awk -v FS=',' -v OFS=',' '{a=$2;$2=$3;$3=a;print}' file >newfile
回复 支持 反对

使用道具 举报

发表于 2010-4-5 23:35:14 | 显示全部楼层
  1. root [ ~ ]0# echo "f1,f2,f3,f4" |
  2. > sed 's/\([^,]*\),\([^,]*\),\([^,]*\)/\1,\3,\2/'
  3. f1,f3,f2,f4
  4. root [ ~ ]0#
复制代码
回复 支持 反对

使用道具 举报

 楼主| 发表于 2010-4-7 19:54:22 | 显示全部楼层
Post by ServerOnly;2080938

  1. root [ ~ ]0# echo "f1,f2,f3,f4" |
  2. > sed 's/\([^,]*\),\([^,]*\),\([^,]*\)/\1,\3,\2/'
  3. f1,f3,f2,f4
  4. root [ ~ ]0#
复制代码


谢谢,有效。
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

快速回复 返回顶部 返回列表