使用Unix仅删除文件中的最后一个逗号

使用Unix仅删除文件中的最后一个逗号,unix,csv,sed,comma,tr,Unix,Csv,Sed,Comma,Tr,我的文件SQL\u INPUT.csv的值如下所示(值的数量不一定是3,甚至会达到300,但格式如下所示)我只需要删除最后一个逗号 'YC101692','YE100097','YU102391', 我试过下面的方法 sed'$s/,$/'SQL\u INPUT.csv 未给出任何结果(未删除最后一个,)也已尝试 SQL_INPUT.csv | tr-d“,$” 它删除了所有逗号您尝试使用的sed似乎几乎正确。我要说的是,以下几点应该可以做到: sed s/,$// SQL_INPUT.c

我的文件
SQL\u INPUT.csv
的值如下所示(值的数量不一定是3,甚至会达到300,但格式如下所示)我只需要删除最后一个逗号

'YC101692','YE100097','YU102391',
我试过下面的方法

sed'$s/,$/'SQL\u INPUT.csv
未给出任何结果(未删除最后一个
)也已尝试

SQL_INPUT.csv | tr-d“,$”

它删除了所有逗号

您尝试使用的sed似乎几乎正确。我要说的是,以下几点应该可以做到:

sed s/,$// SQL_INPUT.csv
此外,如果您认为最后一个逗号后面可能有空格,可以将上面的命令更改为类似以下内容:

sed 's/, *$//' SQL_INPUT.csv

这是一个
awk

awk '{sub(/,$/,x)}1' SQL_INPUT.csv
'YC101692','YE100097','YU102391'

是在Windows中生成的文件,请尝试以下操作:

dos2unix SQL_INPUT.csv SQL_INPUT.csv
sed '$ s/,$//' SQL_INPUT.csv

我试了上述方法,但没有得到任何结果。我做错了吗bash-3.2$sed s/,$//SQL_INPUT.csv | echo bash-3.2$如果文件有DOS行结尾,请使用
s/,[[:space:][]*$//
@user3116123您的评论看起来像
sed s/,$//SQL_INPUT.csv | echo
,因为
echo
,它将打印一个空行。所以放下它,只做
sed s/,$//SQL_INPUT.csv,它应该可以工作。我得到了下面的错误bash-3.2$awk'{sub(/,$/,x)}1'SQL_INPUT.csv awk:1行附近的语法错误awk:1行附近的非法语句awk:1行附近的语法错误awk:1行附近的退出在我的系统上,
awk
中没有错误,而且没有特别的突击队可以使它不相容。您使用的是什么操作系统。请将此输出粘贴到您的帖子中:
head-n1 SQL\u INPUT.csv | hextump-C
tr
根本不使用正则表达式,它只处理字符集