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

如何用Bash处理JSON文件:筛选.js路径、遍历操作并替换相对路径

完全可以实现,你可以直接使用awk配合Bash完成所有需求,适配你提供的规整JSON结构,不需要额外依赖。

完整实现脚本

将以下内容保存为process.sh:

#!/bin/bash

# 处理file.txt并生成新的JSON文件
awk '
# 匹配所有.js后缀的文件路径行
/"[^"]+\.js",?$/ {
    # 提取完整的文件路径
    match($0, /"([^"]+\.js)"/, path_arr)
    full_path = path_arr[1]

    # --------------------------
    # 此处替换为你的自定义操作,例如echo文件名
    print "当前处理文件:" full_path | "cat >&2"
    # 也可以直接调用系统命令,例如:system("echo " full_path)
    # --------------------------

    # 提取最后一段文件名,拼接为相对路径
    sub(/.*\//, "", full_path)
    # 保留原缩进、逗号格式,输出替换后的行
    printf "    \"./%s\",\n", full_path
    next
}
# 非.js后缀的行直接原样输出
1
' file.txt > output.json

# 如需直接覆盖原文件,取消注释下行
# mv output.json file.txt

运行方式

  1. 给脚本加执行权限:chmod +x process.sh
  2. 执行脚本:./process.sh

效果说明

  • 自动识别所有.js结尾的文件路径,匹配逻辑符合你给出的正则规则
  • 自定义操作的输出默认定向到标准错误,不会污染最终生成的JSON内容
  • 生成的output.json完全符合你期望的格式,非.js文件路径保持不变
  • 如果后续你的JSON结构变得更复杂(比如多字段嵌套、数组压缩为单行),建议优先使用jq工具处理JSON,稳定性更高。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.20 16:36:08