我是Unix新手。
我有以下文件:
AB 123-01 vl 278
AB 123-01 na "aa"
AB 123-01 eg 5,6
AB 445-01 vl 521
AB 445-01 na "cd"
AB 445-01 eg 7,6
AB 945-01 vl 215
AB 945-01 na "Discreet"
AB 945-01 eg 1,6
我想获得以下输出:
AB 123-01,278,aa,5,6
AB 445-01,521,cd,7,6
AB 945-01,215,Discreet,1,6
用逗号将三行转换为一行(总是三行) 并删除单词:vl,na,例如
答案 0 :(得分:2)
如果您喜欢单行班轮,可以使用awk。
输入filename.txt
AB 123-01 vl 278
AB 123-01 na "aa"
AB 123-01 eg 5,6
AB 445-01 vl 521
AB 445-01 na "cd"
AB 445-01 eg 7,6
AB 945-01 vl 215
AB 945-01 na "Discreet"
AB 945-01 eg 1,6
代码:
awk 'BEGIN {RS=NULL} {printf("%s %s,%s,%s,%s\n", $1, $2, $4, substr($8,2,length($8)-2), $12)}' filename.txt
输出
AB 123-01,278,aa,5,6
AB 445-01,521,cd,7,6
AB 945-01,215,Discreet,1,6