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

Bash实现aliase.txt中Alias续行合并与格式转换方法

Bash处理Alias文件格式化方案

直接用awk单命令即可完成全流程处理,大文件处理效率高,无额外依赖,完整命令如下:

awk '
# 处理反斜杠续行拼接
/\\$/ {
    sub(/\\$/, "")
    buf = buf $0
    next
}
{
    cur_line = buf $0
    buf = ""
    # 仅筛选前缀为Alias的条目,排除H_Alias、Port_Alias等其他类型
    if (cur_line !~ /^Alias[[:space:]]+"/) next
    # 提取双引号包裹的别名
    match(cur_line, /"([^"]+)"/, name_arr)
    alias = name_arr[1]
    # 截取等号后的所有数值段
    sub(/^[^=]+=[[:space:]]*/, "", cur_line)
    # 按逗号分割数值,逐行输出
    split(cur_line, val_arr, /,[[:space:]]*/)
    for (idx in val_arr) {
        if (val_arr[idx] ~ /^[0-9]+$/) {
            # 别名与数值间默认保留6个空格缩进,可按需调整空格数量
            printf "%s      %s\n", alias, val_arr[idx]
        }
    }
}
' aliase.txt > formatted_alias.txt

处理逻辑说明

  • 续行兼容:自动识别行尾反斜杠的续行标记,去掉反斜杠和换行拼接为完整单行,支持任意多行的续行场景,自动过滤续行前固定的10个空格缩进
  • 条目过滤:仅匹配行首为Alias+空白+双引号的合法条目,自动跳过其他前缀的别名类型
  • 格式输出:拆分逗号分隔的所有数值,每个数值单独和别名配对成行,缩进长度可修改printf语句中的空格数自定义

处理效果示例

输入的多行续行内容:

Alias  "Aliasname" = 1, 2, 3 \
      4, 5, 6

处理后输出:

Aliasname      1
Aliasname      2
Aliasname      3
Aliasname      4
Aliasname      5
Aliasname      6

完全符合要求的输出格式。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.26 14:48:21