网上找了一些 IP 地址段,想自行把它们添加到 clash 中,请教如何使用 vscode 或者 editplus 之类的编辑软件通过正则批量设置?

2023-05-26 23:50:37 +08:00
 binghe

网上找了一些 IP 地址段,想自行把它们添加到 clash 中,请教如何使用 vscode 或者 editplus 之类的编辑软件通过正则批量设置? 将 ip 前后加上指定的格式。 例如:IP-CIDR,129.146.48.191/8,no-resolve

部分 IP 段如下

129.146.102.194
129.146.46.164
129.146.48.191
129.151.141.128
129.151.192.107
129.151.192.40
129.151.192.53
129.151.193.64
129.151.193.94
129.151.194.103
129.151.194.145
129.151.194.170
129.151.194.57
129.151.194.69
129.151.195.178
129.151.195.187
...
935 次点击
所在节点    问与答
14 条回复
Puteulanus
2023-05-27 00:02:17 +08:00
可以搜一下多行编辑的快捷键
Lentin
2023-05-27 00:12:58 +08:00
alt+shift+鼠标选 多行编辑
home/end 切换光标前后,就够了
blackcrystal
2023-05-27 00:53:00 +08:00
如果只是简单地在每行首尾添加指定的字符串,我有一个用替换而不使用正则表达式的方法。
众所周知每行的行尾和行首,都紧邻换行符。以 Note⁤pad++为例,若要把
129.x.x.194
129.x.x.165
变为
IP-CIDR,129.x.x.194/8,no-resolve
IP-CIDR,129.x.x.165/8,no-resolve
只需把文件第一行和最后一行留空,按 Ctrl+F 并转到“替换”选项卡,以“扩展查找模式”查找目标“\r\n”,将其替换为“/8,no-resolve\r\nIP-CIDR,”,即可看到效果。然后,删除预先在文件首尾留下的空行即可完成。

其实利用大多数类 Unix 系统自带的 awk 命令可以更简单地做到:
awk '{print "开头添加的字符串" $0 "末尾添加的字符串"}' input.txt > output.txt

如果是需要根据文件中的每行内容插入不同的字符串,请楼主补充问题细节或编写脚本解决。
Andim
2023-05-27 00:58:45 +08:00
经常用 3 楼的方法编辑各种规则
binghe
2023-05-27 02:09:32 +08:00
@Puteulanus
@Lentin
感谢两位的回复,多行编辑有个问题,就是 ip 地址长短不一致,结尾添加时有些选不上。所以才没有使用多行编辑。
但我不知道是否有其他方法可以避免这个问题。
binghe
2023-05-27 02:13:50 +08:00
@blackcrystal
感谢提供方法,很好用,editplus 中“拓展查找 xxx”是叫做“支持\U \L \E 符号”,可能不同版本中文有差异。

另外,你说的 awk 命令不会使用。能否给个示例?
IP 列表开头也不同:
129.151.203.111
129.151.203.220
129.151.203.252
129.151.203.254
130.162.137.210
130.162.139.185
130.162.141.81
138.2.18.190
138.2.231.183
138.2.27.139
146.56.189.167
146.56.43.53
150.230.108.177
150.230.221.227
150.230.255.36
168.138.52.23
168.138.77.170
192.18.128.18
192.9.139.252
.....
Andim
2023-05-27 06:38:18 +08:00
Notepad++ Ctrl+H
查找模式 正则表达式
查找目标 里添 ^ 替换里添加你要在行首加入的内容
查找目标 里添 $ 替换里添加你要在行尾加入的内容

owltacklejaguar
2023-05-27 10:08:30 +08:00
3 楼给的办法

awk '{print "IP-CIDR," $0 "/8,no-resolve"}' input.txt > output.txt
Puteulanus
2023-05-27 11:39:53 +08:00
@binghe 我不知道 npp 是不是一样,我在 sublime text 里全选,然后按多行编辑的快捷键,选上的行都会有光标,这时候按左就是所有光标到行首,按右就是所有光标到行尾,即使每行的长度有差别也没问题的

按理说每个光标响应“到行首”、“到行尾”这类快捷键应该行为是一致的,查了下 notepad++ 的好像是 home 和 end ,你可以试试

还有移动一个单词的快捷键,我可以移到行尾,然后按住 shift 用“左移到单词开头”的快捷键,这时候光标会移动到 IP 的第三个点后,同时选上 IP 的第四个数字,按删除,打 0/24 ,就能批量改成网段,而不管最后一个数字是多少位的

多行编辑用熟了挺有生产力的,有时间建议研究一下
binghe
2023-05-27 15:40:18 +08:00
@Andim 6 ,万万没想到啊,我之前确实是有在这个编辑框中输入^$想着试试看,但是我有个“习惯”,就是每次都会先点一下查找,看看光标是否能“正确”定位,其他软件我不清楚,但是 vscode 和 editplus 中是无法定位的,于是我也就默认的认为这种方法不行。。。。
binghe
2023-05-27 15:42:30 +08:00
@owltacklejaguar 谢谢谢谢,明白了。
binghe
2023-05-27 15:50:08 +08:00
@Puteulanus 非常感谢,刚刚在 vscode 上测试了一下,CTRL+左右方向键 可以快速定位到单词开头或者结尾。
air00dd
2023-05-27 17:06:48 +08:00
EXCEL 之类的表格程序,纵向拖动,文本合并命令或者函数
binghe
2023-05-27 19:35:25 +08:00
@air00dd 实不相瞒,以前确实是用 excel ,但是编辑软件我大多数时是常开的。而 excel 不常开。

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/943327

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX