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

如何在Shell脚本中从remoteEntry.js提取HTTP/HTTPS前缀地址?

提取remoteEntry.js中的HTTP/HTTPS地址前缀

你的原有命令无效,是因为[^_next]+是字符集否定匹配,它会排除_、n、e、x、t这五个单个字符,而非跳过"_next"整个字符串,导致匹配提前终止。以下是几种可行的Shell实现方法:

方法1:使用grep(最简方案)

直接匹配HTTP/HTTPS开头,直到第一个斜杠前的完整前缀:

grep -Eo 'https?://[^/]+' remoteEntry.js
  • https?://:匹配http://或https://,?表示s可选
  • [^/]+:匹配任意非斜杠的字符序列,刚好截取到域名+端口的部分

方法2:使用sed(精确匹配到/_next前)

如果需要严格匹配到/_next之前的前缀,避免误匹配其他URL:

sed -n 's/.*\(https\?:\/\/[^\/]*\)\/_next.*/\1/p' remoteEntry.js
  • -n:只输出匹配的行
  • 正则捕获组\(https\?:\/\/[^\/]*\):提取http(s)://到第一个斜杠前的内容
  • 替换后仅输出捕获的部分

方法3:使用awk(处理多字段场景)

如果文件中有多个类似URL,awk可以更灵活地遍历字段提取:

awk -F'"' '{for(i=1;i<=NF;i++) if($i ~ /^https?:\/\//) {sub(/\/_next.*/,"",$i); print $i}}' remoteEntry.js
  • -F'"':以双引号作为字段分隔符
  • 遍历每个字段,找到以HTTP/HTTPS开头的项,再去掉/_next及之后的内容后输出

测试效果

针对你提供的示例行:

var remotes = {"home":"http://localhost:3001/_next/static/ssr/remoteEntry.js"};

上述三种方法都会输出:

http://localhost:3001

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.29 07:42:20