【awk】 处理多个文件】的更多相关文章

AWK是Unix下的一款功能强大的文本格式化和抽取工具.利用这个工具,可以对复杂的文本文件进行整理,提取其中的全部或者部分数据,按照需要的格式予以显示.需要说明的是,AWK的强大功能只针对纯文本文件.对于带有很多不可显示字符的二进制数据文件,单凭AWK就无能为力了.这时我们需要其他工具的帮助. 在Unix下,还有一个工具叫做OD,其全称是“display files in octal format”,也就是说它能将各种文件以8进制的方式显示出来.如果设置不同的选项,它还能将文件以16进制方式显示…
AWK实现把一个文件根据内容进行分组输出多个文件 1.首先准备文件data.txt(分隔符为tab) 第一列省编码,第二列省名称...... 2.将该大文件根据第一列的省编码进行分组并输出到各个省编码文件中 awk -F '\t' -vOFS=',' '{if (NF>0) print ($1,$2,$3,$4,$5,$6) > $1".csv"}' data.txt 3.查看结果…
当对一个大文件进行传输或者分析的时候,一个可以参考的办法是先通过split对文件进行分割,再对每个子文件进行处理,如果需要合并再进行合并. split函数可以按文件大小或者行数来进行分割. -a : 指定后缀长度 -b : 每个文件多少字节,单位可以为k和M -d : 使用数字后缀而不是字母 -l : 指定每个文件的行数,默认1000 例子: 切割一个文件为每个子文件20M大小,-b指定20M大小,filename为文件名,prefix为每个子文件的前缀.后缀通常为aa,ab,ac.... $…
1.当awk读取的文件只有两个的时候,比较常用的有三种方法(1)awk 'NR==FNR{...}NR>FNR{...}' file1 file2 (2)awk 'NR==FNR{...}NR!=FNR{...}' file1 file2(3)awk 'NR==FNR{...;next}{...}' file1 file2 next表示下一个命令不被执行 2.当awk处理的文件超过两个时,显然上面那种方法就不适用了.因为读第3个文件或以上时,也满足NR>FNR (NR!=FNR),显然无法区分…
突然发现awk原来可以统计同一数据在要处理的文件中所出现的次数.原来的时候为了分析数据还自己写程序,哎,无语,当时还以为自己多强,手工分析不过来的东西写程序处理.现在想来实在是年少轻狂.解决问题嘛,不讲究方式,只要快速高效的完成任务就OK了. 好,今天小试牛刀统计了一下passwd文件中shell部分重复的shell名和出现的次数,看命令: $awk -F: '{a[$7]++}END{for (i in a) print i" "a[i]}' /etc/passwd /bin/fal…
测试文件test.file [root@localhost ~]# cat test.file 111111111111111 222222222222222 333333333333333 444444444444444 555555555555555 666666666666666 777777777777777 888888888888888 999999999999999 1010101010101010 1) 打印奇数行的方法 [root@localhost ~]# sed -n '1…
awk.sed对处理日志文件和写shell脚本时非常有益.这个东西,如果不经常操作,真心过一段时间就忘差不多..要掌握熟练,就要多练习,这没什么可说的. awk '条件{命令}' filename 假设一个待处理的文件test是这样的: 比如我需要第一列是tcp的,并打印出第4列和第6列 awk '/^tcp/ {print $4,"\t",$6}' test 或者 awk '$1 == "tcp" {print $4,"\t",$6}' tes…
当我们在 Unix/Linux 下使用特定的命令从字符串或文件中读取或编辑文本时,我们经常需要过滤输出以得到感兴趣的部分.这时正则表达式就派上用场了. 什么是正则表达式? 正则表达式可以定义为代表若干个字符序列的字符串.它最重要的功能之一就是它允许你过滤一条命令或一个文件的输出.编辑文本或配置文件的一部分等等. 正则表达式的特点 正则表达式由以下内容组合而成: 普通字符,例如空格.下划线.A-Z.a-z.0-9. 可以扩展为普通字符的元字符,它们包括: (.) 它匹配除了换行符外的任何单个字符.…
转载:http://www.cnblogs.com/Berryxiong/p/6209324.html 1.当awk读取的文件只有两个的时候,比较常用的有三种方法(1)awk 'NR==FNR{...}NR>FNR{...}' file1 file2 (2)awk 'NR==FNR{...}NR!=FNR{...}' file1 file2(3)awk 'NR==FNR{...;next}{...}' file1 file2 next表示下一个命令不被执行 2.当awk处理的文件超过两个时,显然…
1.用awk '{if(!NF ){next}}1' file11 实现对文件里面的空行进行跳过操作,并输出结果. 2. awk '{if(!NF || /^#/){next}}1' file11 实现对文件里面的空行和#开头的行进行跳过操作,并输出结果.…