You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在mkdir命令中去除斜杠?实现带CIDR后缀IP的文件夹创建

提取CIDR格式IP中的地址部分创建文件夹

有几种简单的方法可以处理这个需求,不用纠结复杂的sed写法,甚至可以用bash原生的参数扩展搞定:

方法1:Bash参数扩展(推荐,无需外部命令)

利用bash的参数扩展功能,直接从输入参数里截掉/及后面的内容:

#!/bin/bash

# 先检查用户是否传入了参数
if [ $# -eq 0 ]; then
    echo "请传入目标IP(支持CIDR格式,比如192.168.1.0/24)"
    exit 1
fi

# 提取纯IP部分:${参数%%/*} 表示从最后一个/开始删除后面所有内容
target_ip="${1%%/*}"

# 执行nmap扫描(用原始的CIDR参数)
nmap "$1"

# 创建文件夹,用提取出的纯IP命名
mkdir -p "$target_ip"

这里的${1%%/*}是核心:%%是最长匹配删除模式,/*匹配从第一个/到行尾的所有字符,不管后面是/24还是/16,都会被干净地截掉。

方法2:用cut命令切割

如果习惯用文本处理工具,cut命令也能快速搞定:

target_ip=$(echo "$1" | cut -d '/' -f 1)

-d '/'指定分隔符为/,-f 1表示取第一个分隔后的字段。

方法3:用sed实现(解决你之前的sed写法问题)

如果一定要用sed,正确的写法是匹配/及后面的内容并替换为空:

target_ip=$(echo "$1" | sed 's/\/.*$//')

解释:s/\/.*$//是sed替换规则,\/转义斜杠,.*$匹配从/开始到行尾的所有字符,替换成空字符串,就得到了前面的纯IP。

三种方法都能实现需求,优先用方法1,因为不需要调用外部命令,脚本执行效率更高。

内容的提问来源于stack exchange,提问作者Oded

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.22 10:54:14