centos网络代理中的穷举法字符串操作

文章讲述了在Linux系统中,no_proxy环境变量不支持通配符或网段设置,因此需要使用shell脚本和sed命令进行IP地址的列举与格式转换,将空格分隔的IP列表转换为逗号分隔,以便符合代理配置的要求。
摘要由CSDN通过智能技术生成

代理设置中的字符串操作

Linux的no_proxy设置,即跳过代理的地址的设置不支持通配符(*.xx.com192.168.*)、不支持网段(192.168.0.0/16),只能一个一个 IP 或域名的配置,如果 IP 是连续的,可以使用 “穷举法”。

echo 192.168.{1..2}.{1..3}可以获得

[root@master ~]# echo 192.168.{1..2}.{1..3}
192.168.1.1 192.168.1.2 192.168.1.3 192.168.2.1 192.168.2.2 192.168.2.3

这些IP之间是空格分开的,不符合代理配置用逗号分开的标准

所以要把空格替换成逗号

下面用了sed命令和shell的${}字符串操作

//shell的${}字符串操作*
no_proxy_192=$(echo 192.168.220.{1..255})
export no_proxy="127.0.0.1,localhost,${no_proxy_192// /,}"
//sed命令
no_proxy_192=$(echo 192.168.220.{1..255}|sed 's/ /,/g')
no_proxy="127.0.0.1,localhost,,${no_proxy_192}"

1、sed命令

在末尾加g替换每一个匹配的关键字,否则只替换每行的第一个,例如:

//替换所有匹配关键字
sed 's/原字符串/替换字符串/g'

更多的sed操作

2、shell字符串操作

//替换字符串 替换第一个在字符串中匹配到的 待替换字符串
${字符串/待替换字符串/替换字符串}
//替换字符串 替换每一个在字符串中匹配到的 待替换字符串
${字符串//待替换字符串/替换字符串}

示例

#!/bin/sh

str="This is This is my test string search_string"  #被测试字符串
subStr="This is "                                   #待替换的字符串
replaceStr="TTT "                                   #替换的字符串

echo -e "Test 1 ${str/$subStr/$replaceStr}"
echo -e "Test 2 ${str//$subStr/$replaceStr}"

其输出为:

Test 1 TTT This is my test string search_string
Test 2 TTT TTT my test string search_string

更多shell字符串操作

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值