HP-UX系统下如何在10位数字文件名第4位后添加下划线
HP-UX下批量重命名10位数字文件名的最优方案
针对HP-UX系统的环境,推荐两种通用且高效的批量重命名方案,无需额外安装工具,默认系统环境即可运行:
方法一:Shell循环结合Sed拆分(最常用)
利用HP-UX自带的sed工具拆分文件名,通过循环批量处理所有10位纯数字文件:
for file in [0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9]; do new_name=$(echo "$file" | sed 's/^\(....\)/\1_/') mv "$file" "$new_name" done
命令说明:
[0-9][0-9]...:通配符精确匹配10位纯数字文件名,避免误操作其他文件sed 's/^\(....\)/\1_/':用正则捕获文件名前4位字符,替换为「前4位+下划线」,保留后续6位数字- 循环逐个将原文件重命名为新格式
方法二:Shell循环结合Awk拆分
如果更习惯使用awk处理字符串,可采用以下写法:
for file in [0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9]; do new_name=$(echo "$file" | awk '{print substr($0,1,4)"_"substr($0,5)}') mv "$file" "$new_name" done
命令说明:
substr($0,1,4):截取文件名前4位字符substr($0,5):截取从第5位开始到结尾的所有字符- 通过字符串拼接生成带下划线的新文件名,再执行重命名
注意事项:
- 执行前可先通过
ls [0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9]确认目标文件列表,避免误操作 - 由于新文件名是11位格式,与原10位文件名无冲突,无需担心重命名覆盖问题
内容的提问来源于stack exchange,提问作者Steve M
相关产品推荐
相关产品推荐

