gpt4 book ai didi

linux - 使用 awk 检查来自不同行的变量

转载 作者:塔克拉玛干 更新时间:2023-11-03 00:00:08 24 4
gpt4 key购买 nike

如果它们匹配,我想使用 awk 将多行不同长度的值组合成一行。在以下第一个字段的示例匹配值中,将第二个字段的值聚合到一个列表中。

输入,示例 csv:

222;a;DB;a
222;b;DB;a
555;f;DB;a
4444;a;DB;a
4444;d;DB;a
4444;z;DB;a

输出:

222;a|b
555;f
4444;a|d|z

我如何编写一个 awk 表达式(也许是其他一些 shell 表达式)来检查第一个字段值是否与下一行/上一行匹配,然后打印由管道聚合和分隔的第二个字段值列表?

最佳答案

awk '
BEGIN {FS=";"}
{ if ($1==prev) {sec=sec "|" $2; }
else { if (prev) { print prev ";" sec; };
prev=$1; sec=$2; }}
END { if (prev) { print prev ";" sec; }}'

按照您的要求,这会检查连续的行。

关于linux - 使用 awk 检查来自不同行的变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7502459/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com