sed – Awk有条件地组合多行
发布时间:2020-12-13 19:49:27 所属栏目:Linux 来源:网络整理
导读:如果它们匹配ID,我想将来自不同长度的多行的值组合成一行. 输入示例是: ID: Value:a-1 49a-2 75b-1 120b-2 150b-3 211c-1 289d-1 301d-2 322 期望的输出示例是: ID: Value:a 49,75b 120,150,211c 289d 301,322 我如何编写awk表达式(或sed或grep或其他东西)
如果它们匹配ID,我想将来自不同长度的多行的值组合成一行.
输入示例是: ID: Value: a-1 49 a-2 75 b-1 120 b-2 150 b-3 211 c-1 289 d-1 301 d-2 322 期望的输出示例是: ID: Value: a 49,75 b 120,150,211 c 289 d 301,322 我如何编写awk表达式(或sed或grep或其他东西)来检查ID是否匹配,然后将所有这些值打印到一行?我当然可以打印 解决方法
在awk中,如果您的ID聚集在一起:
awk 'NR==1 {print $0} NR > 1 {sub("-.*","",$1)} NR == 2 {prev=$1; printf "%s %s",$1,$2} NR > 2 && prev == $1 {printf ",%s",$2} NR > 2 && prev != $1 {prev=$1; printf "n%s %s",$2}' your_input_file (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |