在UNIX

时间:2016-09-28 06:47:11

标签: csv unix

我的要求是将管道分离文件转换为普通的excel。 所以我在UNIX中使用了以下tr命令来执行此操作。 tr'|' ','< filename.csv> filename_Final.csv 当我执行上面的命令时,它会将字段的负号带到字段结尾。 所以我试着把负号带到字段前面,我找到了正确匹配的UNIX脚本。 如果有人遇到类似的情况,请帮助。 输入:管道文件

1|abc|-123
2|def|456
3|ijk|789

执行后

tr '|' ',' < filename.csv > filename_Final.csv

输出: 管道文件分为普通列

1   abc 123-
2   def 456
3   ijk 789

我的要求是将负号带到场地前面。

1 个答案:

答案 0 :(得分:1)

而不是tr,您只需使用awk来覆盖Output-Field-Separator|

awk '{$1=$1}1' FS="|" OFS=" " filename.csv > filename_Final.csv

上面的命令会将OFS覆盖到一个空格,因此输入文件

1|abc|-123
2|def|456
3|ijk|789

转换为

1 abc -123
2 def 456
3 ijk 789

因此不会干扰列条目。