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

如何在Shell中读取Java MANIFEST.MF文件的多行值条目?

解决MANIFEST.MF中拆分的Start-Class条目提取问题

你的MANIFEST.MF里Start-Class的值因为超过Manifest规范的72字节限制,被拆成了两行(第二行以空格开头)。之前用的命令没能正确合并这些续行,导致提取结果不完整。

正确命令1:用sed合并续行后提取

sed ':a; N; s/\n //; ta' MANIFEST.MF | awk '/Start-Class/{print $2}'
  • sed部分:a; N; s/\n //; ta:循环读取文件内容,把所有以空格开头的续行合并到上一行,自动去掉换行符和开头的空格。
  • awk部分:匹配Start-Class行,打印冒号后的完整值。

正确命令2:用perl直接提取

perl -0777 -ne 'while (/Start-Class:\s*(.*?)(?=\n\S|\Z)/gs) { print "$1\n" }' MANIFEST.MF

这个命令通过正则直接匹配Start-Class:后的内容,直到遇到下一个非空格开头的行或者文件末尾,一次性提取完整的续行内容。

执行以上任意命令,就能得到完整的Start-Class值:com.spotnana.obt.commissionengine.CommissionEngineApplication

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.22 17:32:38