使用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
根本不使用正则表达式,它只处理字符集