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

在Bash中移除文件名点间中间部分,求更简便实现方法

几种简便的实现方式

不用awk也能轻松搞定,这里给几个更直接的方法:

1. Shell 参数扩展(无需额外工具,最快)

直接用bash/zsh自带的参数替换功能,不用调用任何外部命令:

# 处理单个文件名示例
filename='myfile.20240101.txt'
new_filename="${filename%%.*}.${filename##*.}"
echo "$new_filename"  # 输出:myfile.txt
  • ${filename%%.*}:截取第一个.之前的部分(比如myfile)
  • ${filename##*.}:截取最后一个.之后的部分(比如txt)
  • 拼接起来就是目标文件名

2. sed 命令

用正则替换快速修改:

echo 'otherfile.20240303.txt' | sed 's/\..*\././'
# 输出:otherfile.txt

正则\..*\.\会匹配第一个.到最后一个.之间的所有内容,直接替换成单个.即可。

3. rename 批量修改文件

如果要批量处理一堆文件,用perl版本的rename最方便:

rename 's/\..*\././' *.txt

执行后所有xxx.yyy.txt格式的文件都会被自动改成xxx.txt。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.13 20:03:13