有没有办法删除CSV文件中字符串的最后两个字符?

有没有办法删除CSV文件中字符串的最后两个字符?,csv,awk,Csv,Awk,我需要删除csv文件中第7个值的小数点。这更像是一个字符串操作问题,因为我希望在CSV文件中保留前导零。因此int()不是一个选项,因为它也将删除前导零。有人能帮忙吗 myfile.csv内容 00014,0001,some place,user1,2020-04-30,7339.jpg,3625.6 00015,0001,some place,user1,2020-04-29,8839.jpg,0030.1 所需产量 00014,0001,some place,user1,2020-04-3

我需要删除csv文件中第7个值的小数点。这更像是一个字符串操作问题,因为我希望在CSV文件中保留前导零。因此int()不是一个选项,因为它也将删除前导零。有人能帮忙吗

myfile.csv内容

00014,0001,some place,user1,2020-04-30,7339.jpg,3625.6
00015,0001,some place,user1,2020-04-29,8839.jpg,0030.1
所需产量

00014,0001,some place,user1,2020-04-30,7339.jpg,3625
00015,0001,some place,user1,2020-04-29,8839.jpg,0030
谢谢

如果你想考虑小数点后一位数以上的可能性:

awk '{sub("\.[0-9]+$","",$7)}1' FS=, OFS=, myfile.csv
sed -E 's/\.[0-9]+$//' myfile.csv
这更像是一个字符串操作

然后您可以在本例中使用其中一个
substr
。让
file.txt
内容

00014,0001,some place,user1,2020-04-30,7339.jpg,3625.6
00015,0001,some place,user1,2020-04-29,8839.jpg,0030.1
然后

输出

00014,0001,some place,user1,2020-04-30,7339.jpg,3625
00015,0001,some place,user1,2020-04-29,8839.jpg,0030

这只需将第7列内容替换为(字符数-2)列的第一个字符,即丢弃最后两个字符。

我需要删除小数点和其后的字符。最后两个角色,完美。非常感谢。awk声明正是我所需要的。
awk 'BEGIN{FS=",";OFS=","}{$7=substr($7,1,length($7)-2);print}' file.txt
00014,0001,some place,user1,2020-04-30,7339.jpg,3625
00015,0001,some place,user1,2020-04-29,8839.jpg,0030