说明:蓝色=命令名称 浅绿=命令参数 浅蓝=选项 紫色=目录 系统环境:CentOS 6.2 i686
要求:文件a:
10/05766798607,11/20050325191329,29/0.1,14/05766798607
10/05767158557,11/20050325191329,29/0.08,14/05767158557 文件b:
05766798607
05766798608
05766798609
通过文件a和文件b对比,输出结果如下:
10/05766798607,11/20050325191329,29/0.1,14/05766798607 方法:a)
awk -F"[/, ]" "{if(NR==FNR){a[$1]}else if($2 in a)print $0}" b a650) this.width=650;" border=0>
解析:NR为主体行号,FNR为单位文件行号。
{if(NR==FNR){a[$1]} 将b文件中的数据放入数组a,
else if($2 in a)print $0}" 主要是对b文件内容的操作,判断第二个域中数据是否与a数组中的数据匹配,匹配则打印本行。b)精简法:awk -F"[,/ ]" "{a[$1]}{if($2 in a)print $0}" b a650) this.width=650;" border=0>
解析:-F"[,/ ]" 用,或/ 做分隔符,"{a[$1]}{if($2 in a)print $0}" 用第一个域的值作为数组a的下标,判断第二个域是否与数组a(a数组中的有用数据也就为数组a文件中的,即前三行)中的匹配,因为先读入b文件,且b文件中只有一个域,所以此时判断只与a文件有关,最后打印匹配行信息。CentOS 6 KVM虚拟机yum安装CentOS 根据命令查所在的包相关资讯 awk
- 使用 awk 过滤文本或文件中的字符 (07月25日)
- Linux 管理员都应该会的命令:sed (01月13日)
- Linux awk文本分析工具 (12/13/2015 16:29:12)
| - 使用awk格式化输出文本 (04月14日)
- 使用awk批量杀进程的命令 (12/20/2015 15:36:24)
- 使用 Linux/Unix 进行文本处理 (11/23/2015 09:54:13)
|
本文评论 查看全部评论 (0)