我说我的记录是这样的。 输入
1,1,1,1.213,1,1,1.23
2,2,2,2.345,2,2,2.33
3,3,3,3.456,3,3,3.44
我想要像这样
输出
1,1,1,1,1,1,1.23
2,2,2,2,2,2,2.33
3,3,3,3,3,3,3.44
如何仅删除第4列的逗号?,我不想删除最后一列的逗号
答案 0 :(得分:2)
您可以使用:
awk -F"," '{print $1,$2,$3,int($4),$5,$6,$7}'
我猜你正在寻找int()
。
示例:
$
cat test
1,1,1,1.213,1,1,1.23
2,2,2,2.345,2,2,2.33
3,3,3,3.456,3,3,3.44
$
awk -F"," '{print $1,$2,$3,int($4),$5,$6,$7}' test
1 1 1 1 1 1 1.23
2 2 2 2 2 2 2.33
3 3 3 3 3 3 3.44
编辑(来自ccf的好建议):
您可以使用此代替上面的awk
命令的长版本。
$ awk -F',' '{$4=int($4); print}'
1,1,1,1.213,1,1,1.23
1 1 1 1 1 1 1.23
答案 1 :(得分:1)
如果temp.txt有输入,那么
$ cat temp.txt | sed 's/\.[0-9]\+//1'
1,1,1,1,1,1,1.23
2,2,2,2,2,2,2.33
3,3,3,3,3,3,3.44
1结尾意味着,只替换第一场比赛。