使用带有以下标签的AWK或SED逗号分隔:
[BEGIN AccountID]
[BEGIN CallerID]
[BEGIN Billed Account Attributes]
1111111
1111111
1111111
[END Billed Account Attributes]
[BEGIN OBIO Tax]
10
20
30
[END OBIO Tax]
[BEGIN RINO Tax]
777
888
999
[END RINO Tax]
[BEGIN CallerID]
[END AccountID]
[BEGIN AccountID]
[BEGIN CallerID]
[BEGIN Billed Account Attributes]
2222222
2222222
2222222
[END Billed Account Attributes]
[BEGIN OBIO Tax]
40
50
60
[END OBIO Tax]
[BEGIN CallerID]
[END AccountID]
我想要一个AWK或SED脚本来打印它:
1111111,1111111,1111111, 10,20,30, 777,888,999
2222222,2222222,2222222, 40,50,60, 0, 0, 0
....
....
....
以逗号分隔,并在未显示RINO TAX时输入ZERO。
非常感谢!!!!
答案 0 :(得分:1)
这可能适合你(GNU sed):
sed '/\[BEGIN AccountID\]/,/\[END AccountID\]/!d;/\[BEGIN AccountID\]/{h;d};/./H;/\[END AccountID\]/!d;g;s/\n*\[[^\n]*\n*//g;s/\n/,/g;s/\s*//g;ta;:a;s/,//9;t;s/$/0,0,0/' file
N.B。这会删除空格和空行。