V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
V2EX 提问指南
binghe
V2EX  ›  问与答

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

  •  
  •   binghe · 307 天前 · 796 次点击
    这是一个创建于 307 天前的主题,其中的信息可能已经有所发展或是发生改变。

    网上找了一些 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
    ...
    
    14 条回复    2023-05-27 19:35:25 +08:00
    Puteulanus
        1
    Puteulanus  
       307 天前   ❤️ 1
    可以搜一下多行编辑的快捷键
    Lentin
        2
    Lentin  
       307 天前   ❤️ 1
    alt+shift+鼠标选 多行编辑
    home/end 切换光标前后,就够了
    blackcrystal
        3
    blackcrystal  
       307 天前   ❤️ 1
    如果只是简单地在每行首尾添加指定的字符串,我有一个用替换而不使用正则表达式的方法。
    众所周知每行的行尾和行首,都紧邻换行符。以 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
        4
    Andim  
       307 天前 via iPhone   ❤️ 1
    经常用 3 楼的方法编辑各种规则
    binghe
        5
    binghe  
    OP
       307 天前
    @Puteulanus
    @Lentin
    感谢两位的回复,多行编辑有个问题,就是 ip 地址长短不一致,结尾添加时有些选不上。所以才没有使用多行编辑。
    但我不知道是否有其他方法可以避免这个问题。
    binghe
        6
    binghe  
    OP
       307 天前
    @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
        7
    Andim  
       307 天前   ❤️ 1
    Notepad++ Ctrl+H
    查找模式 正则表达式
    查找目标 里添 ^ 替换里添加你要在行首加入的内容
    查找目标 里添 $ 替换里添加你要在行尾加入的内容

    owltacklejaguar
        8
    owltacklejaguar  
       307 天前   ❤️ 1
    3 楼给的办法

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

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

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

    多行编辑用熟了挺有生产力的,有时间建议研究一下
    binghe
        10
    binghe  
    OP
       307 天前
    @Andim 6 ,万万没想到啊,我之前确实是有在这个编辑框中输入^$想着试试看,但是我有个“习惯”,就是每次都会先点一下查找,看看光标是否能“正确”定位,其他软件我不清楚,但是 vscode 和 editplus 中是无法定位的,于是我也就默认的认为这种方法不行。。。。
    binghe
        11
    binghe  
    OP
       307 天前
    @owltacklejaguar 谢谢谢谢,明白了。
    binghe
        12
    binghe  
    OP
       307 天前
    @Puteulanus 非常感谢,刚刚在 vscode 上测试了一下,CTRL+左右方向键 可以快速定位到单词开头或者结尾。
    air00dd
        13
    air00dd  
       307 天前
    EXCEL 之类的表格程序,纵向拖动,文本合并命令或者函数
    binghe
        14
    binghe  
    OP
       306 天前
    @air00dd 实不相瞒,以前确实是用 excel ,但是编辑软件我大多数时是常开的。而 excel 不常开。
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   我们的愿景   ·   实用小工具   ·   5308 人在线   最高记录 6543   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 36ms · UTC 09:10 · PVG 17:10 · LAX 02:10 · JFK 05:10
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.