免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
1234下一页
最近访问板块 发新帖
查看: 8815 | 回复: 36
打印 上一主题 下一主题

怎么把两个文件中对应的行,用等号连接到一起?以解决,谢谢 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2009-11-02 10:26 |只看该作者 |倒序浏览
比如a文件中
1 char a[3]
2 char b[4]
......

b文件中
1 ox34 ox4e oxff
2 ox67 ox9a oxfe ox3f
.......

输出结果为:

1 char a[3]={ox34 ox4e oxff};
2 char b[4]={ox67 ox9a oxfe ox3f};
......
两个文件中的行数是一样的
谢谢

两个文件中的行数,是我用nl加进去的
我本来想,排序之后用join的,但是没搞定,

如果各位认为,前面的行号碍事的话,可以把他们去掉
再次谢谢各位


[ 本帖最后由 xdshting 于 2009-11-2 12:59 编辑 ]

论坛徽章:
0
2 [报告]
发表于 2009-11-02 10:37 |只看该作者

回复 #1 xdshting 的帖子

User@User-PC ~
$ cat a
char a[3]
char b[4]

User@User-PC ~
$ cat b
ox34 ox4e oxff
ox67 ox9a oxfe ox3f

User@User-PC ~
$ awk 'FILENAME=="a"{s[NR]=$0}END{for (x in s){print s[x] "={" $0 "};" }}' a b
char a[3]={ox67 ox9a oxfe ox3f};
char b[4]={ox67 ox9a oxfe ox3f};

论坛徽章:
5
2015年辞旧岁徽章
日期:2015-03-03 16:54:152015年迎新春徽章
日期:2015-03-04 09:50:282015年亚洲杯之朝鲜
日期:2015-03-13 22:47:33IT运维版块每日发帖之星
日期:2016-01-09 06:20:00IT运维版块每周发帖之星
日期:2016-03-07 16:27:44
3 [报告]
发表于 2009-11-02 10:48 |只看该作者
  1. paste -d '={};' a /dev/null b /dev/null /dev/null
复制代码

论坛徽章:
0
4 [报告]
发表于 2009-11-02 11:01 |只看该作者
sorry, #2 wrong

awk 'FILENAME=="a"{s[FNR]=$0};FILENAME=="b"{x[FNR]="={" $0 "};"}END{for(j=1;j<=NR;j++){print s[j] x[j]}}' a b

[ 本帖最后由 twfcc 于 2009-11-2 11:05 编辑 ]

论坛徽章:
0
5 [报告]
发表于 2009-11-02 11:03 |只看该作者
[root@cestos5 shell]# cat urfile urfile1
char a[3]
char b[4]
ox34 ox4e oxff
ox67 ox9a oxfe ox3f
[root@cestos5 shell]# paste urfile urfile1|sed -e 's/\]\t/\]={/' -e 's/$/};/'
char a[3]={ox34 ox4e oxff};
char b[4]={ox67 ox9a oxfe ox3f};

论坛徽章:
0
6 [报告]
发表于 2009-11-02 11:08 |只看该作者
原帖由 twfcc 于 2009-11-2 10:37 发表
User@User-PC ~
$ cat a
char a[3]
char b[4]

User@User-PC ~
$ cat b
ox34 ox4e oxff
ox67 ox9a oxfe ox3f

User@User-PC ~
$ awk 'FILENAME=="a"{s[NR]=$0}END{for (x in s){print s[x] "={" $0  ...


这个命令敲下去之后没反应阿

论坛徽章:
0
7 [报告]
发表于 2009-11-02 11:09 |只看该作者
黑哥的方法佩服!!!

论坛徽章:
0
8 [报告]
发表于 2009-11-02 11:19 |只看该作者
原帖由 twfcc 于 2009-11-2 11:01 发表
sorry, #2 wrong

awk 'FILENAME=="a"{s[FNR]=$0};FILENAME=="b"{x[FNR]="={" $0 "};"}END{for(j=1;j



[root@localhost home]# awk 'FILENAME=="name_nu.h"{s[FNR]=$0};FILENAME=="series_code_un.txt"{x[FNR]="={"$0"};"}END{for(j=1;j<=NR;j++){print s[j] x[j]}}' name_nu.h series_code_un.txt
};     1char f1[0xf4  0x09  0xf4
};     2char f2[0xf3  0x09  0xf3
};     3char f3[0xf5  0x09  0xf5
};     4char f4[0xed  0x09  0xed
};     5char f5[0xf6  0x09  0xf6
};     6char f6[0xee  0x09  0xee
};     7char f7[0x76  0x09  0x76
};     8char f8[0xef  0x09  0xef
};     9char f9[0xf8  0x09  0xf8

still wrong

论坛徽章:
0
9 [报告]
发表于 2009-11-02 11:20 |只看该作者
原帖由 linuxboy823 于 2009-11-2 11:03 发表
[root@cestos5 shell]# cat urfile urfile1
char a[3]
char b[4]
ox34 ox4e oxff
ox67 ox9a oxfe ox3f
[root@cestos5 shell]# paste urfile urfile1|sed -e 's/\]\t/\]={/' -e 's/$/};/'
char a[3]={ox3 ...

[root@localhost home]# paste name_nu.h series_code_un.txt|sed -e 's/\]\t/\]={/' -e 's/$/};/'
};   1       11[0xf4  0x09  0xf4
};   2       22[0xf3  0x09  0xf3
};   3       33[0xf5  0x09  0xf5
};   4       44[0xed  0x09  0xed
};   5       55[0xf6  0x09  0xf6
};   6       66[0xee  0x09  0xee
};   7       77[0x76  0x09  0x76
};   8       88[0xef  0x09  0xef
};   9       99[0xf8  0x09  0xf8

why

论坛徽章:
0
10 [报告]
发表于 2009-11-02 11:27 |只看该作者

回复 #9 xdshting 的帖子

试下黑哥的
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP