Vim中如何删除行内第二个非连续=之后的内容?
处理文本文件的方法
方法一:用文本编辑器(VS Code/Sublime/Notepad++等)的正则替换
- 打开目标文本文件,调出替换面板(VS Code按
Ctrl+H,Notepad++按Ctrl+H) - 勾选「正则表达式」模式
- 查找内容输入:
^([^=]+=[^=]+)=.* - 替换为输入:
$1 - 点击「全部替换」即可完成处理
方法二:命令行用sed工具(适合批量处理)
在终端执行以下命令,将处理后的内容输出到新文件:
sed -E 's/^([^=]+=[^=]+)=.*/\1/' input.txt > output.txt
(把input.txt换成你的源文件名,output.txt是处理后的文件名)
正则逻辑说明
^([^=]+=[^=]+):捕获行开头到**第二个非连续的=**之前的内容,确保两个=之间有非=字符(排除==连续的情况)=.*:匹配第二个=及其后面的所有内容- 替换为
$1(或sed里的\1)就是保留捕获到的部分,删掉后面的内容
这样处理后,像clown=fish=vertebrate会变成clown=fish,而slug==snail这种连续=的行会保持不变,没有=的行也不受影响。
内容的提问来源于stack exchange,提问作者Ariane
相关产品推荐
相关产品推荐

