如何从Tor配置文件的Bridge行中提取端口号?
提取Tor配置文件中Bridge行的IP端口号
方法1:使用grep(精准匹配)
针对仅提取Bridge开头行中IP后的端口号,用Perl兼容正则过滤:
bridge_ports=$(grep -Po '^Bridge.*:\K[0-9]+' your_tor_config_file)
^Bridge:仅匹配以Bridge开头的行,避免其他含冒号的行干扰.*::匹配到端口号前的最后一个冒号\K:忽略前面匹配的内容,只输出后续的数字端口- 结果会存入
bridge_ports变量,若有多个Bridge行,变量会包含所有端口(换行分隔)
方法2:使用awk(灵活处理字段)
如果Bridge行的格式是Bridge <IP>:<端口> 其他内容,可以用awk分割字段提取:
bridge_ports=$(awk '/^Bridge/ {split($2, port_arr, ":"); print port_arr[2]}' your_tor_config_file)
/^Bridge/:筛选目标行split($2, port_arr, ":"):将第二个字段(IP:port)按冒号分割成数组port_arr[2]:取数组第二个元素即端口号
方法3:使用sed
通过替换匹配内容提取端口:
bridge_ports=$(sed -n '/^Bridge/s/.*:\([0-9]\+\).*/\1/p' your_tor_config_file)
-n:只输出匹配的行/^Bridge/:定位目标行s/.*:\([0-9]\+\).*/\1/p:替换整行为冒号后的数字部分并打印
如果你的Bridge行不是以Bridge开头,而是包含Bridge关键词,只需把上述命令中的^Bridge改成Bridge即可。
内容的提问来源于stack exchange,提问作者user21379959
相关产品推荐
相关产品推荐

