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

如何从文本文件提取GST编号并追加到文件名(Bash实现)

批量提取GST编号并重命名文件的Bash方案

单行脚本实现

直接用for循环结合你已验证的awk命令,就能完成批量操作:

for file in *.txt; do gst=$(awk '/GST: / {print $NF}' "$file"); mv "$file" "${file%.txt}_${gst}.txt"; done

细节说明

  • 遍历当前目录下所有.txt文件,如果需要严格匹配yymmdd_nnnnnnnnnn.txt格式,可先开启Bash扩展匹配:shopt -s extglob,然后把*.txt换成[0-9]{6}_[0-9]{10}.txt
  • ${file%.txt}是Bash参数扩展语法,用于移除文件名末尾的.txt后缀,方便拼接新的文件名
  • 你之前用awk '/\d+$/'报错是因为**awk不支持\d作为数字匹配符**,要换成[0-9]或者[[:digit:]]才有效

处理子目录的扩展方案

如果需要递归处理子目录里的文件,用find命令配合:

find . -type f -name "*.txt" -exec bash -c '
  file="$1"
  gst=$(awk '\''/GST: / {print $NF}'\'' "$file")
  mv "$file" "${file%.txt}_${gst}.txt"
' _ {} \;

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.22 13:09:29