如何在Bash中将斜杠分隔的路径字符串逐层写入文件
实现思路
- 先对输入路径做格式化:移除首尾的
/字符,避免空元素干扰分割结果 - 按
/分割路径得到各级目录名的列表 - 遍历目录名列表,逐层拼接前缀
/和前面的目录段,生成每一层的完整路径 - 将所有生成的路径逐行写入目标文件
代码实现
Python 版本
# 配置参数 input_path = "/sd1/sd2/sd3/" output_path = "hierarchy_paths.txt" # 路径处理逻辑 dir_parts = input_path.strip("/").split("/") hierarchy = [] current_path = "" for part in dir_parts: current_path += f"/{part}" hierarchy.append(current_path) # 写入文件 with open(output_path, "w", encoding="utf-8") as f: f.write("\n".join(hierarchy))
边界兼容:如果输入是根路径
/,dir_parts会是空列表,可自行添加判断是否要额外写入/到文件。
Bash 版本
#!/bin/bash INPUT_PATH="/sd1/sd2/sd3/sd4/sd5/" OUTPUT_FILE="hierarchy_paths.txt" # 移除首尾斜杠 trimmed_path="${INPUT_PATH#/}" trimmed_path="${trimmed_path%/}" # 分割为数组 IFS='/' read -ra DIR_PARTS <<< "$trimmed_path" # 清空输出文件后逐层写入 > "$OUTPUT_FILE" CURRENT="" for PART in "${DIR_PARTS[@]}"; do CURRENT+="/$PART" echo "$CURRENT" >> "$OUTPUT_FILE" done
内容的提问来源于stack exchange,提问作者user16740005
相关产品推荐
相关产品推荐

