如何在vi编辑器中用单命令删除data.txt指定行的特定单词/整行
嘿,这事儿好办,给你分两种场景的单条Vi命令,按需选用就行:
解决方案:用Vi编辑器单条命令处理指定行的内容
场景1:仅删除第2行和第10行中的“rahul”单词(保留整行其他内容)
直接在Vi的命令行模式下输入这条命令:
:2;s/rahul//g | 10;s/rahul//g
命令拆解:
::进入Vi的命令行模式2;s/rahul//g:定位到第2行,全局替换(g参数)“rahul”为空字符串,也就是删除该行所有的“rahul”单词|:Vi中用来连接多个命令的分隔符,执行完前一个命令后自动执行后一个10;s/rahul//g:和前面逻辑一致,处理第10行的“rahul”单词
场景2:直接删除包含“rahul”的第2行和第10行(整行删除)
如果需要直接删掉这两行,用这条命令更严谨(确保只删除包含“rahul”的目标行,避免误删):
:2g/rahul/d | 10g/rahul/d
命令拆解:
2g/rahul/d:在第2行中查找(g)包含“rahul”的内容,找到后执行删除(d)行操作|:连接命令,继续处理第10行10g/rahul/d:同理处理第10行
要是你已经百分百确认第2行和第10行肯定包含“rahul”,也可以用更简洁的版本:
:2d | 10d
内容的提问来源于stack exchange,提问作者Pravin Gaddam




