我有一个csv文件与一行,看起来像这样:
,,,,,,,,,,
这是10个逗号。我希望只删除最后一个(即第10个)逗号,这样该行将更改为:
,,,,,,,,,
有没有人有过处理这样的案例的经验?我也使用VIM文本编辑器。所以,任何使用Python脚本或使用VIM的文本编辑命令的帮助都将不胜感激。
bvpmtnay1#
正在删除vim中当前行的最后一个逗号::s/,$//第n行到第m行的情况相同::n,ms/,$//个整个文件相同::%s/,$//
:s/,$//
:n,ms/,$//
:%s/,$//
wqsoz72f2#
这将在最简单的情况下做到这一点,一旦你更新了你的问题与你正在寻找的,我会更新代码。
commas = ",,,,,,,,,,," print commas.replace(","*10, ","*9)
如果要删除任意给定行上的最后一个逗号,可以执行以下操作:
import re commas = """,,,,,,,,,, ,,,,,,,,,,""" print re.sub(r',$', '', commas, re.MULTILINE)
如果在任何文件中,你想把一行10个逗号变成9个逗号:
import re commas = ",,,,,,,,,,\n,,,,,,,,,,\n,,,,,,,,,," print re.sub(r'^,{10}$', ','*9, commas, re.MULTILINE)
dz6r00yl3#
我会用途:
sed -i 's/,$//' file.csv
u5i3ibmn4#
我真的很喜欢VIM normal命令。所以如果你想从这个CSV文件中删除最后一个“列”,我会这样做:
:%normal $F,D
换句话说,在此文件(%)的每一行中执行以下过程(normal):
%
normal
$
F,
D
:1,20normal $F,D
但如果只有许多逗号,而且逗号之间没有数据,则可以简单地执行以下操作:
:%normal $X
4条答案
按热度按时间bvpmtnay1#
正在删除vim中当前行的最后一个逗号:
:s/,$//
第n行到第m行的情况相同:
:n,ms/,$//
个整个文件相同:
:%s/,$//
wqsoz72f2#
这将在最简单的情况下做到这一点,一旦你更新了你的问题与你正在寻找的,我会更新代码。
如果要删除任意给定行上的最后一个逗号,可以执行以下操作:
如果在任何文件中,你想把一行10个逗号变成9个逗号:
dz6r00yl3#
我会用途:
u5i3ibmn4#
我真的很喜欢VIM normal命令。所以如果你想从这个CSV文件中删除最后一个“列”,我会这样做:
换句话说,在此文件(
%
)的每一行中执行以下过程(normal
):$
-转到行的末尾;F,
-将光标移动到此行的预览逗号处;D
-从光标处删除到行尾;此外,它还可用于范围(从第1行到第20行):
但如果只有许多逗号,而且逗号之间没有数据,则可以简单地执行以下操作: