基于键列重复值第一列 - Linux

基于键列重复值第一列 - Linux

我有一个像这样的管道分隔文件,其中第二列是对第一列中的 id 进行分组的键。

456566|23233|
456545|23233|
456745|23233|
456456|23234|
456356|23234|

我正在尝试创建一个这样的文件,其中第一个 id 根据第二个字段中的 id 和第二列中该组的剩余 id 进行重复。我想学习如何使用 awk 等实用程序来执行此操作

输出

456566|456545
456566|456745
456456|456356

答案1

$ cat tst.awk
BEGIN { FS=OFS="|" }
$2 != prevKey {
    firstId = $1
    prevKey = $2
    next
}
{ print firstId, $1 }

$ awk -f tst.awk file
456566|456545
456566|456745
456456|456356

相关内容