我虽然这是一个简单的任务,但不是!
输入(管道分隔):
record1|ABCDEFGH record2|IJKLMNOP
我需要这个输出:
record1|A|B|C|D|E|F|G|H record2|I|J|K|L|M|N|O|P
到目前为止我尝试了什么:
awk 'BEGIN{FS=OFS="|"}{a = split($2, b, ""); for(i=1; i<=a; i++){printf("%s|%s, $1, b[i](i==a? "\n":"|"))}}' input
我得到:
record1|A record1|B record1|C ...
我不明白!如果有人能向我解释......
这是另一种使用方式awk
:
awk -F '|' '{ gsub(/./, FS "&", $2) }1' OFS= file
结果:
record1|A|B|C|D|E|F|G|H record2|I|J|K|L|M|N|O|P