有谁知道我如何“拆分”下面的行(这只是一个例子):
mercedes|$40000|black|$42000|white|$41000|red
audi|$31000|blue|$10000|white
mercedes|$5000|blue
Run Code Online (Sandbox Code Playgroud)
我期望的输出是:
mercedes|$40000|black
mercedes|$42000|white
mercedes|$41000|red
audi|$31000|blue
audi|$10000|white
mercedes|$5000|blue
Run Code Online (Sandbox Code Playgroud)
谢谢
一个简单的awk
脚本,用于从第二个字段开始输出每一行的字段对,在每个输出对前加上该行的第一个字段。
$ awk -F '|' 'BEGIN { OFS=FS } { for (i = 2; i+1 <= NF; i += 2) print $1, $i, $(i+1) }' file
mercedes|$40000|black
mercedes|$42000|white
mercedes|$41000|red
audi|$31000|blue
audi|$10000|white
mercedes|$5000|blue
Run Code Online (Sandbox Code Playgroud)
这假设输入符合预期,即最终数据应组织为三列。这意味着输入应严格遵循
title|pair 1a|pair 1b|pair 2a|pair 2b|...|pair Na|pair Nb
Run Code Online (Sandbox Code Playgroud)