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

如何使用shell脚本将文件名指定部分存储到变量

解决方案

错误点说明

你编写的赋值语句不符合Shell语法规则:

  1. 变量赋值时等号两侧不能加空格,fileDate= 加空格的写法会被Shell识别为「临时将fileDate设为空值,执行后续的echo管道命令」,不会完成变量持久赋值
  2. 要将命令的执行结果存入变量,需要使用命令替换语法$(命令) 包裹要执行的语句

正确实现代码

# 定义原文件名变量
file='20210823_Club_Member_Name_by_ID.txt'
# 命令替换赋值
fileDate=$(echo "$file" | awk -F'[_.]' '{print $1}')
# 打印验证
echo "$fileDate"

轻量化优化方案(无需调用外部命令)

可以直接使用Shell内置的参数扩展语法实现需求,相比调用awk、echo命令性能更高:

file='20210823_Club_Member_Name_by_ID.txt'
# 截取第一个下划线之前的所有内容
fileDate=${file%%_*}
echo "$fileDate"

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.06 21:00:01