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

请求协助合并输入文件行并按降序生成指定格式输出

问题需求

处理inputfile.txt,将终端行与对应使用率行合并为单行,并按使用率降序输出。

输入输出示例

输入文件inputfile.txt内容:

TerminalA/admin#
   51% used 
TerminalB/admin#
   62% used
TerminalC/admin#
   42% used

期望输出格式:

TerminalB/admin# 62% used
TerminalA/admin# 51% used
TerminalC/admin# 42% used

用户尝试的代码

执行命令:

awk -f process1.awk | sort -t: -k1,2rn > output.txt

process1.awk脚本内容:

/^$/  { print " " }
!/^$/ { printf("%s ",$0) }

问题分析与修正方案

原方案存在两个核心问题:

  1. 合并逻辑错误:将所有非空行连续拼接,没有按「终端行+使用率行」的成对关系合并
  2. 排序参数错误:sort的分隔符设为:、排序键选1,2,无法正确识别使用率数值进行排序

修正方法:分合并、排序两步处理

步骤1:编写合并行的awk脚本(merge.awk)

# 奇数行(终端行)保存到变量
NR % 2 == 1 { term = $0 }
# 偶数行(使用率行)去掉前导空格后,和终端行合并输出
NR % 2 == 0 {
    gsub(/^[[:space:]]+/, "", $0)
    print term, $0
}

步骤2:执行合并+排序命令

awk -f merge.awk inputfile.txt | sort -k2,2rn > output.txt

命令解释

  • merge.awk:通过行号奇偶性配对终端和使用率行,同时清理使用率行的前导空格
  • sort -k2,2rn:按合并后行的第2个字段(即百分比数值)进行数字降序排序,sort会自动识别62%中的数字部分完成排序

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.16 16:15:38