- 论坛徽章:
- 0
|
- awk 'NR==FNR{if ($0==v&&T) {a[v]=a[v]"\n"$0;T=0;v=""}if (/.*\(.*\) *{/) {split($0,m," *{");v=m[1];a[v]=$0;T=1;next}if (T) a[v]=a[v]"\n"$0}NR>FNR{if (/.*\(.*\) *{/) {if (T1) for (i=n;i>0;i--) {if (b[i]~/}/) o++;if (o==2){num=i;break}}if (num) {for (i=1;i<num;i++) print b[i];print a[v]""b[num];for (i=num+1;i<=n;i++) print b[i]}n=0;T1=0;o=0;num=0;delete b;split($0,m," *{");v=m[1];if (v in a) {T1=1;b[++n]=$0;next}}if (T1) {b[++n]=$0;next}print}END{if (T1) for (i=n;i>0;i--) {if (b[i]~/}/) o++;if (o==2){num=i;break}}if (num) {for (i=1;i<num;i++) print b[i];print a[v]""b[num];for (i=num+1;i<=n;i++) print b[i]}}' A B
复制代码
- [root@Mylinux tmp]# cat A
- test(ABC1) {
- Abc1.
- }
- test(ABC1)
- test(DEF2){
- def2.
- .
- }
- test(DEF2)
- kkkk
- [root@Mylinux tmp]# cat B
- oo
- test(ABC1){
- {...
- {...
- {...
- }
- }
- }
- k
- }
- oo
- test(DEF2){
- {...
- {...
- {...
- }
- }
- }
- o
- }
- [root@Mylinux tmp]# awk 'NR==FNR{if ($0==v&&T) {a[v]=a[v]"\n"$0;T=0;v=""}if (/.*\(.*\) *{/) {split($0,m," *{");v=m[1];a[v]=$0;T=1;next}if (T) a[v]=a[v]"\n"$0}NR>FNR{if (/.*\(.*\) *{/) {if (T1) for (i=n;i>0;i--) {if (b[i]~/}/) o++;if (o==2){num=i;break}}if (num) {for (i=1;i<num;i++) print b[i];print a[v]""b[num];for (i=num+1;i<=n;i++) print b[i]}n=0;T1=0;o=0;num=0;delete b;split($0,m," *{");v=m[1];if (v in a) {T1=1;b[++n]=$0;next}}if (T1) {b[++n]=$0;next}print}END{if (T1) for (i=n;i>0;i--) {if (b[i]~/}/) o++;if (o==2){num=i;break}}if (num) {for (i=1;i<num;i++) print b[i];print a[v]""b[num];for (i=num+1;i<=n;i++) print b[i]}}' A B
- oo
- test(ABC1){
- {...
- {...
- {...
- }
- }
- test(ABC1) {
- Abc1.
- }
- test(ABC1) }
- k
- }
- oo
- test(DEF2){
- {...
- {...
- {...
- }
- }
- test(DEF2){
- def2.
- .
- }
- test(DEF2) }
- o
- }
- [root@Mylinux tmp]#
复制代码 |
|