Chinaunix

标题: awk 多文件获取内容并输出? [打印本页]

作者: iamkey9    时间: 2011-09-11 20:39
标题: awk 多文件获取内容并输出?
本帖最后由 iamkey9 于 2011-09-11 20:54 编辑

目录下有大概50个文件,其格式为:

......
10.69.241.66 Sun Sep 11 19:57:40 2011 Packets: Sent = 381318, Received = 367247, Lost = 14071 (3% loss),
.....

现在要求取每个文件的内容,后组合为

...
文件名1 Sun Sep 11 19:57:40 381318 367247 14071 3%  文件名2  Sun Sep 11 19:57:40 381318 367247 14071 3% 文件名3 ......
...

不同文件中的时间日期不要求统一,类似 paste -d " " file* > out3 ,但是 paste无法获取文件名
求AWK多文件操作指导
作者: zooyo    时间: 2011-09-11 21:33
提示: 作者被禁止或删除 内容自动屏蔽
作者: ljwd1000    时间: 2011-09-11 22:04
回复 2# zooyo


    老兄,真够热心的。过节也不忘CU呀
作者: mpstat    时间: 2011-09-13 10:22
没看懂。

lz是要把所有的列并成一行么
作者: FaintKnowledge    时间: 2011-09-13 11:15
本帖最后由 FaintKnowledge 于 2011-09-13 11:17 编辑

回复 1# iamkey9


    笨方法:
awk '{getline a< "file2";print FILENAME,$0,"file2",a}' file1 | sed '2,$s/\(.*\)file1\(.*\)file2\(.*\)/\1     \2     \3/g'   ######\1\2\3之间的空格的长度等于文件名字的长度,例如file1,就是有5个空格


awk '{getline a< "file2";print FILENAME,$0,"file2",a}' file1 | awk 'NR==1{print }NR>1{$1="     ";$3="     ";print $0}'  #####$3指的是file2那一列...

有文件可以继续加... {getline a< "file2";getline b < "file3";print FILENAME,$0,"file2",a,"file3", b},依次类推




欢迎光临 Chinaunix (http://bbs.chinaunix.net/) Powered by Discuz! X3.2