如何批量移除文件名中各异的混合字符段(无remove函数权限)
批量重命名移除文件名可变中间段的解决方案
针对你需要批量移除文件名中可变中间片段、且无remove函数权限的需求,以下是几种原生命令行解决方案,无需额外工具:
Bash(Linux/macOS)
方法1:利用参数扩展(推荐,适配固定结构文件名)
遍历所有.fastq.gz文件,通过字符串截取提取前缀和目标后缀:
for file in *.fastq.gz; do # 提取第一个下划线前的前缀部分 prefix="${file%%_*}" # 去掉前三个下划线分隔的字段(保留_L开头及之后的内容) suffix="${file#*_*_*_}" # 重命名文件 mv "$file" "${prefix}_${suffix}" done
方法2:用awk分割字段
通过下划线分割文件名字段,直接拼接需要的部分:
for file in *.fastq.gz; do new_name=$(echo "$file" | awk -F '_' '{print $1 "_" $4 "_" $5}') mv "$file" "$new_name" done
Windows PowerShell
通过分割文件名数组,筛选并拼接目标部分:
Get-ChildItem *.fastq.gz | Rename-Item -NewName { $nameParts = $_.Name -split '_' "$($nameParts[0])_$($nameParts[3])_$($nameParts[4])" }
说明
以上方案均使用系统原生命令,仅需要文件重命名权限,无需依赖remove函数或第三方工具,完全匹配你的文件名结构需求。
内容的提问来源于stack exchange,提问作者mdav
相关产品推荐
相关产品推荐

