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

如何用awk将private开头行等号右侧转小写,现有命令不生效原因查询

命令无效果的核心原因

  • tolower()是返回转换结果的函数,不会直接修改传入的参数。你仅执行tolower($2)没有把转换后的小写字符串赋值回$2,计算结果会被直接丢弃,不会修改行内容。
  • 你调用gsub(/[-/]/, "_")时没有指定作用目标,默认会修改整行$0,而非你预期的等号右侧$2字段。
  • 你没有指定输出字段分隔符OFS='=',即使修改了$2,输出时字段也会默认用空格分隔,破坏原有的=分隔结构。

修正后可用命令

如果仅需要输出修改后的内容,执行以下命令:

gawk -F'=' '/^private/{$2 = tolower($2); gsub(/[-/]/, "_", $2)} 1' OFS='=' filename

如果需要直接修改原文件(gawk 4.1及以上版本支持),添加-i inplace参数即可:

gawk -i inplace -F'=' '/^private/{$2 = tolower($2); gsub(/[-/]/, "_", $2)} 1' OFS='=' filename

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.02 02:18:02