使用 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 时填零。
非常感谢!!!!
最佳答案
这可能对你有用(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
注意这会删除空格和空行。
关于linux - 使用 AWK 或 SED 以及以下标签以逗号分隔,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11460542/