LinuxSir.cn,穿越时空的Linuxsir!

 找回密码
 注册
搜索
热搜: shell linux mysql
查看: 1721|回复: 7

awk能否同时处理多个文件?请教我的这个例子怎么做

[复制链接]
发表于 2006-11-12 14:21:09 | 显示全部楼层 |阅读模式
比如1.txt文件有3列,分别为a,b,c,2.txt文件有两列,为a,d,两个文件中的a列是相同的。
我想生成一个3.txt,内部为a,b,c,d 这4列,怎么弄啊?是否可以?
发表于 2006-11-13 03:57:21 | 显示全部楼层
  1. cat 1.txt| awk '{b=$0;getline <"2.txt";for(i=1;i<=NF;i++){if(!index(b,$i))p=$i};print b,p}'
复制代码
a little complicated.
回复 支持 反对

使用道具 举报

 楼主| 发表于 2006-11-13 08:19:07 | 显示全部楼层
Post by yongjian
  1. cat 1.txt| awk '{b=$0;getline <"2.txt";for(i=1;i<=NF;i++){if(!index(b,$i))p=$i};print b,p}'
复制代码
a little complicated.



版主能否稍微解释一下?你的好些变量,比如说p,NF是哪里来的我也不知道。其实整个的写法都看不太明白。
回复 支持 反对

使用道具 举报

发表于 2006-11-13 09:24:01 | 显示全部楼层
楼上的稍微man gawk就可以知道啦
回复 支持 反对

使用道具 举报

发表于 2006-11-13 13:00:45 | 显示全部楼层
跟着学学,我发现awk也不是那么可怕了
  1. awk '{printf"%s  ",$0; getline<"b.txt"; print$2 }'   a.txt
复制代码
回复 支持 反对

使用道具 举报

发表于 2006-11-13 13:25:56 | 显示全部楼层
用join不行啊:
  1. [linux_now@student01 test]$ cat a.txt ;echo ---------;cat b.txt
  2. drwxr-xr-x 2 linux_now linux_now 4096 11-12 23:57
  3. drwxr-xr-x 4 linux_now linux_now 4096 11-13 01:29
  4. drwxr-xr-x 2 linux_now linux_now 4096 11-13 10:07
  5. ---------
  6. drwxr-xr-x Desktop            
  7. drwxr-xr-x GNUstep
  8. drwxr-xr-x test                  
  9. [linux_now@student01 test]$ join a.txt b.txt
  10. drwxr-xr-x 2 linux_now linux_now 4096 11-12 23:57 Desktop
  11. drwxr-xr-x 2 linux_now linux_now 4096 11-12 23:57 GNUstep
  12. drwxr-xr-x 2 linux_now linux_now 4096 11-12 23:57 test
  13. drwxr-xr-x 4 linux_now linux_now 4096 11-13 01:29 Desktop
  14. drwxr-xr-x 4 linux_now linux_now 4096 11-13 01:29 GNUstep
  15. drwxr-xr-x 4 linux_now linux_now 4096 11-13 01:29 test
  16. drwxr-xr-x 2 linux_now linux_now 4096 11-13 10:07 Desktop      
  17. drwxr-xr-x 2 linux_now linux_now 4096 11-13 10:07 GNUstep
  18. drwxr-xr-x 2 linux_now linux_now 4096 11-13 10:07 test
复制代码
回复 支持 反对

使用道具 举报

 楼主| 发表于 2006-11-13 20:33:15 | 显示全部楼层
Post by linux_now
跟着学学,我发现awk也不是那么可怕了
  1. awk '{printf"%s  ",$0; getline<"b.txt"; print$2 }'   a.txt
复制代码



就这个了,谢谢
回复 支持 反对

使用道具 举报

发表于 2006-11-14 13:24:37 | 显示全部楼层
试试我这个:cat 1.txt 2.txt|sort -u >3.txt
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

快速回复 返回顶部 返回列表