awk使用基于先前匹配的第1列和第2列的值添加(追加/复制)缺少的列

awk使用基于先前匹配的第1列和第2列的值添加(追加/复制)缺少的列,awk,match,multiple-columns,add,Awk,Match,Multiple Columns,Add,输入文件示例格式:filea dataev 258 aaa val1 val3 val4 trim val 7999 dataev 259 bbb 1 35 aa ff ggg dataev 259 bbb val1 val3 val4 set val 7999 dataev 26 ccc 2 10 aa ff ggg dataev 26 ccc val1 val3 val4 set (val/x86) 7999 dataev 26 ddd val1 val3 v

输入文件示例格式:filea

    dataev 258 aaa val1 val3 val4 trim val 7999
    dataev 259 bbb 1 35 aa ff ggg dataev 259 bbb val1 val3 val4 set val 7999
    dataev 26 ccc 2 10 aa ff ggg dataev 26 ccc val1 val3 val4 set (val/x86) 7999
    dataev 26 ddd val1 val3 val4 trim val 7999
    dataev 262 qqqq 1 38 aa ff ggg dataev 262 qqqq val1 val3 val4 set (val/x86) 7999
    dataev 263 aaa 1 39 bb ff ggg dataev 263 aaa val1 val3 val4 set val 7999
    dataev 264 ppp val1 val3 val4 trim x64 7999
    dataev 264 888 1 40 cc ff ggg dataev 264 888 val1 val3 val4 set (val/x86) 7999
    dataev 265 ooo 1 41 bb ff ggg dataev 265 ooo val1 val3 val4 set val 7999
基于输入文件,应根据列$1和$2的匹配情况添加缺少的列(复制),并附加到缺少列和值的列 从“匹配的较长行/行”

输出:

dataev 258 aaa val1 val3 val4 trim val 7999
dataev 259 bbb 1 35 aa ff ggg dataev 259 bbb val1 val3 val4 set val 7999
dataev 26 ccc 2 10 aa ff ggg dataev 26 ccc val1 val3 val4 set (val/x86) 7999
dataev 26 ddd 2 10 aa ff ggg dataev 26 ddd val1 val3 val4 trim val 7999
dataev 262 qqqq 1 38 aa ff ggg dataev 262 qqqq val1 val3 val4 set (val/x86) 7999
dataev 263 aaa 1 39 bb ff ggg dataev 263 aaa val1 val3 val4 set val 7999
dataev 264 ppp 1 40 cc ff ggg dataev 264 ppp val1 val3 val4 trim x64 7999
dataev 264 888 1 40 cc ff ggg dataev 264 888 val1 val3 val4 set (val/x86) 7999
dataev 265 ooo 1 41 bb ff ggg dataev 265 ooo val1 val3 val4 set val 7999
dataev 258 aaa val1 val3 val4 trim val 7999
dataev 259 bbb 1 35 aa ff ggg dataev 259 val1 val3 val4 set val 7999
dataev 26 ccc 2 10 aa ff ggg dataev 26 val1 val3 val4 set (val/x86) 7999
dataev 26 ddd 2 10 aa ff ggg dataev 26 val1 val3 val4 trim val 7999
dataev 262 qqqq 1 38 aa ff ggg dataev 262 val1 val3 val4 set (val/x86) 7999
dataev 263 aaa 1 39 bb ff ggg dataev 263 val1 val3 val4 set val 7999
dataev 264 ppp 1 40 cc ff ggg dataev 264 val1 val3 val4 trim x64 7999
dataev 264 888 1 40 cc ff ggg dataev 264 val1 val3 val4 set (val/x86) 7999
dataev 265 ooo 1 41 bb ff ggg dataev 265 val1 val3 val4 set val 7999

它是一个有5k行的文件,为了简单起见,如果这有帮助的话,还可以连接到以下输出格式

输出:

dataev 258 aaa val1 val3 val4 trim val 7999
dataev 259 bbb 1 35 aa ff ggg dataev 259 bbb val1 val3 val4 set val 7999
dataev 26 ccc 2 10 aa ff ggg dataev 26 ccc val1 val3 val4 set (val/x86) 7999
dataev 26 ddd 2 10 aa ff ggg dataev 26 ddd val1 val3 val4 trim val 7999
dataev 262 qqqq 1 38 aa ff ggg dataev 262 qqqq val1 val3 val4 set (val/x86) 7999
dataev 263 aaa 1 39 bb ff ggg dataev 263 aaa val1 val3 val4 set val 7999
dataev 264 ppp 1 40 cc ff ggg dataev 264 ppp val1 val3 val4 trim x64 7999
dataev 264 888 1 40 cc ff ggg dataev 264 888 val1 val3 val4 set (val/x86) 7999
dataev 265 ooo 1 41 bb ff ggg dataev 265 ooo val1 val3 val4 set val 7999
dataev 258 aaa val1 val3 val4 trim val 7999
dataev 259 bbb 1 35 aa ff ggg dataev 259 val1 val3 val4 set val 7999
dataev 26 ccc 2 10 aa ff ggg dataev 26 val1 val3 val4 set (val/x86) 7999
dataev 26 ddd 2 10 aa ff ggg dataev 26 val1 val3 val4 trim val 7999
dataev 262 qqqq 1 38 aa ff ggg dataev 262 val1 val3 val4 set (val/x86) 7999
dataev 263 aaa 1 39 bb ff ggg dataev 263 val1 val3 val4 set val 7999
dataev 264 ppp 1 40 cc ff ggg dataev 264 val1 val3 val4 trim x64 7999
dataev 264 888 1 40 cc ff ggg dataev 264 val1 val3 val4 set (val/x86) 7999
dataev 265 ooo 1 41 bb ff ggg dataev 265 val1 val3 val4 set val 7999

不清楚,请您更清楚地说明填充值背后的逻辑是什么?val1 val2 val3表示在相关字段/列中没有任何用途的一些随机虚拟值,逻辑是填充“父”行的间隙,以便“更规范化”格式抱歉,但您必须更清楚地了解填充值的逻辑是什么?逻辑是填充“父”行的间隙,以便基于第1列和第2列使用“更规范化/对齐”的格式match@EdMorton谢谢你的意见