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

如何将多行服务器列表按同类合并为空格分隔单行?

解决方案

可以使用 awk 命令快速实现按前缀分组并合并为空格分隔的单行,同时支持对pmox系列按数字范围分段输出,完全匹配你的需求:

命令示例

假设你的原始列表保存在 server_list.txt 文件中,先将以下代码保存为 format_servers.awk:

function trim(s) { sub(/^ +/, "", s); return s }
{
    if (/^server/) {
        servers = servers " " $0
    } else if (/^pmox/) {
        num = substr($0, 5) + 0
        # 按数字范围分组:<=10为第一组,11-19为第二组,以此类推
        if (num <= 10) bucket = 0
        else if (num <= 19) bucket = 1
        else if (num <= 29) bucket = 2
        else if (num <= 39) bucket = 3
        else if (num <= 49) bucket = 4
        pmox_buckets[bucket] = pmox_buckets[bucket] " " $0
    } else if (/^pc/) {
        pcs = pcs " " $0
    }
}
END {
    print trim(servers)
    for (b=0; b<=4; b++) {
        if (pmox_buckets[b] != "") print trim(pmox_buckets[b])
    }
    print trim(pcs)
}

然后运行命令处理文件:

awk -f format_servers.awk server_list.txt

直接处理命令输出

如果列表来自某个命令的实时输出(比如 your_server_query_command),可以直接通过管道传递:

your_server_query_command | awk -f format_servers.awk

逻辑说明

  1. trim 函数:自动去除每组开头的多余空格
  2. 分组规则:
    • 所有server开头的条目合并为单行
    • pmox开头的条目按数字范围分段(匹配你期望的输出格式)
    • 所有pc开头的条目合并为单行
  3. 最终按顺序输出所有分组内容,每组为空格分隔的单行

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.08 05:01:33