过滤数据中的awk流控制

时间:2014-03-20 20:57:18

标签: bash sed scripting awk

我的数据结构如下:

heading.o:
0000000000000000 T name_of_func1
0000000000000005 U name_of_func2
000000000000003d B name_of_func3
...
heading2.o:
0000000000000000 T name_of_func4
0000000000000000 T name_of_func5
...
heading3.o:
...

我想得到标题,符号(T,U,B)和函数名称。这就是我现在所得到的:

awk '/:$/{ print }' | sed 's/://' # get all the headings and get rid of ':'

但我真的不知道如何制作这些条件。你能帮忙吗?

-

一般预期产出:

 heading.o symbol(U/T/B) name_of_func

实际预期产出:

 heading.o T name_of_func1
 heading.o U name_of_func2
 heading.o B name_of_func3
 heading2.o T name_of_func4
 heading3.o .......

1 个答案:

答案 0 :(得分:2)

您可以使用awk:

awk 'NF==1{sub(/:$/, ""); p=$1;next} NF==3{print p, $2, $3}' file
heading.o T name_of_func1
heading.o U name_of_func2
heading.o B name_of_func3
heading2.o T name_of_func4
heading2.o T name_of_func5