String Vim替换第一个逗号之前的所有字符
我正在尝试使用VIM替换大文本文件(10mb+)中第一个逗号之前的所有字符 我有一些东西看起来像:String Vim替换第一个逗号之前的所有字符,string,vim,replace,String,Vim,Replace,我正在尝试使用VIM替换大文本文件(10mb+)中第一个逗号之前的所有字符 我有一些东西看起来像: foo,bar,sun apple,pear,goose monkey,pig,baby 我希望它看起来像: bar,sun pear,goose pig,baby 这应该做到: [esc]:%s:^[^,]*,:: 编辑:当然,您也可以使用剪切: cut -d , -f 2- < mybigfile.txt > newfile.txt cut-d,-f2-newfile.tx
foo,bar,sun
apple,pear,goose
monkey,pig,baby
我希望它看起来像:
bar,sun
pear,goose
pig,baby
这应该做到:
[esc]:%s:^[^,]*,::
编辑:当然,您也可以使用剪切:
cut -d , -f 2- < mybigfile.txt > newfile.txt
cut-d,-f2-newfile.txt
下面的步骤应该可以做到
:%s/^[^,]*,//
说明:
- :命令模式
- %适用于每一行
- 代用品
- /匹配
- ^从一开始
- [^,]逗号以外的任何字符
- *(参见前面的)重复的或空的
- ,逗号
- /替换
- 没什么
- /完成
sed 's/^[^,]*,//' -i FILENAME
或
编辑:次要格式和解释:“
:%s/\{-},//
此版本使用非贪婪量词\{-}
,使前面的点匹配0次或更多次,但尽可能少(因此它是非贪婪的)
这类似于在大多数其他正则表达式风格中使用*?
。您可以使用
:%norm df,
要在文件中的每一行上运行正常命令df,
。它从行的开头删除第一个逗号(包括第一个逗号)
阅读:help:normal
您说的是“替换”,但实际上是在删除字符。
:%norm df,