加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 服务器 > 安全 > 正文

如何删除Vim中前两列的引号?

发布时间:2020-12-15 19:07:08 所属栏目:安全 来源:网络整理
导读:说我在文本文件中有以下风格的行: "12" "34" "some text ""56" "78" "some more text"...etc. 我想要删除前两列的引号。使用Vim做什么最好的方式(我目前使用的是gVim)? 我想出如何通过使用可视化模式至少删除每一行的开始报价,然后输入命令’,' s!^“!
说我在文本文件中有以下风格的行:
"12" "34" "some text     "
"56" "78" "some more text"
.
.
.
etc.

我想要删除前两列的引号。使用Vim做什么最好的方式(我目前使用的是gVim)?

我想出如何通过使用可视化模式至少删除每一行的开始报价,然后输入命令’<,'> s!^“!

我想知道是否有一种方法来选择整列文本(一个字符直接放在文件…或多于1个,但在这种情况下,我只需要一个)。如果有可能,那么你可以将x命令(删除字符)应用到整个列。

可以有更好的方法来做到这一点。我正在寻找任何建议。

更新

刚刚和FYI,我结合了几个建议。我的_vimrc文件现在有以下行:

let @q=':%s/"([0-9]*)"/1/g^M'

(注:THE ^ M为CTRLQ输入模拟运行命令后按Enter键)

现在我可以通过@q使用宏来删除文件中两个数字列的所有引号。

Control-V用于块选择。这将让您在同一个字符列中选择内容。

看起来你想删除数字上的引号。为了这个用途,

:%s/"([0-9]*)"/1/g

这是一个list of what patterns you can do with vim。

还有一种(一种丑陋的)形式,每行限制为4个替换。

:%s/^( *)"([ 0-9]*)"([ 0-9]*)"([ 0-9]*)"/1234/g

而且,如果你有sed方便,你也可以从shell尝试这些。

head -4 filename.txt | sed 's/pattern/replacement/g'

这将在文件的前4行尝试你的命令。

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读