sort能够根据不同的列将文档中的内容排序,对灵活处理文档很有帮助。
(1),sort file 将文档按照第一列的字母顺序排序。
(2),将排序好的结果输出到文档
sort –o fileb filea 将文档filea排序输出到fileb;也能够用sort filea >fileb重定向的方法。
sort –o filea filea 将文档filea排序且覆盖原来的文档
(3),-r 为按降序排序,-n按数字的小大排序,+n(n为0和正整数)按第n+1个字段排序。
Sort –nr +3 filea 即是将filea文档按照第4个字段的数字大小排序,假设filea第4个字段为数字,
并且每个字段之间用空格或Tab键分开。
(4),-t选项为定义文档字段之间分界的符号,-n(n为0或正整数)表示不按第n+1个字段排序。所以 sort +1 –2 +0 -3 -t:
filea将文档filea分别按第2个,不按第3个,按第1个,不按第4个字段排序,其中每个字段之间用“:”分开。
(5),和uniq命令结合能够删除 余的行 sort filea |uniq 将文档filea删除任何完全相同的行后输出。
4. 裁缝世家cut&paste
(1),从一个文档中剪贴字段,字段之间按照特定的符号隔开(默认为空格)。cut –f2,3,5 –d:filea 将文档filea的第2,3,5个字段剪贴出来输出到屏幕,其中每个字段之间用:分开,假如不带-d则每个字段之间按空格分开。
(2),-c选项能够剪贴文档中的数据列。cut -c 1-15,20,22-30 filea 能够剪贴文档filea从第一列开始的第1-15个字符,第20个字符,和第22-30个字符,并输出。
(3),paste 能够将多个文档按列方式合并,和 cut相结合能够重组文档格式。
Cut –d: -f2,5 filea >tmp1
Cut –d: -f 4,3 fileb >tmp2
Cut –d: -f 11,12,13 filec >tmp3
Paste tmp1 tmp2 tmp3 >filed
则分别将文档filea的第2和第5个字段,fileb的第4个和第3个字段,filec的第11,12,13个字段合成为一个新文档filed。(最好filea,fileb,filec具备相同的行,不然将会将行多的文档的行贴到最后,前面的照样匹配。
5. 偷梁换柱的高手tr.
tr(translate)完成文档种批编辑的替换功能,用来将标准输入中的字符转换成标准输出中的其他定制字符:
(1). tr A B fileb 将文档filea中的任何A全部替换成B然后输出到文档fileb
(2). tr 也支持范围替换:
tr “[a-z]” “[A-Z]”
tr -s ‘[A-Z]' ‘[!*]'
(3). 能够利用tr 删除一个字符的连续出现: tr –s ″ ″ fileb 则将filea中的连续出现的空格以一个空格替换然后输出到文档fileb。
(4). –d 选项能够删除指定的字符,-cd 选项能够删除列出的字符以外的任何字符:
tr –d ″[a-z]″ fileb 将文档filea 中的任何小写字符全部删除然后输出到fileb.
tr –cd ″[a-z]″
6. “find ,grep & strings” 织成一张无边无际的网,几乎能够网住任何需要查找的目标,但也难免有漏网之鱼。
find 在目录中查找文档: find / -name filea –print
grep 在文本文档中搜索模式: grep aaaaa filea
strings 在文本文档或二进制文档中找出可打印字符:strings filea
更有很多小成员,象sed,awk,perl,expect等
阅读(812) | 评论(0) | 转发(0) |