专注各种脚本编程
Baidu
加入收藏夹
本站内容有下面分类知识,欢迎您的到来^_^
shell相关:指令篇 基础篇 脚本欣赏 编程实例 shell问问 shell视频教程 技巧篇 水平测试 E文资料 vi编辑器 高级Bash脚本编程指南
其他:mysql perl c语言 oracle
当前位置:| 主页>shell基础篇>

用awk整理sort输出结果

百度收藏 QQ搜藏

对数据分类时,对sort结果加一点附加信息很有必要,对其他用户尤其如此。使用awk可以轻松完成这一功能。比如说采用上面最低租金的例子,需要将sort结果管道输出到awk,不要忘了用冒号作域分隔符,显示提示信息和实际数据。

[sam@chenwy sam]$ sort -t: -r -k4 video.txt |tail -1 | awk -F: '{print "Worst rental", $1, "has been rented" $3}'
Worst rental Alien has been rented119
将两个分类文件合并
将文件合并前,它们必须已被分类。合并文件可用于事务处理和任何种类的修改操作。
下面这个例子,因为忘了把两个家电名称加入文件,它们被放在一个单独的文件里,现在将之并入一个文件。分类的合并格式为‘ sort -m sorted_file1 sorted_file2,下面是包含两个新家电名称的文件列表,它已经分类完毕:

[sam@chenwy sam]$ cat video2.txt
Crimson Tide:134:2031
Die Hard:152:2981
使用-m +o。将这个文件并入已存在的分类文件video.sort,要以名称域进行分类,实际上没有必要加入+ o,但为了保险起见,还是加上的好。

[sam@chenwy sam]$ sort -t: -m +0 video2.txt video.txt
Boys in Company C:HK48:192:2192
Alien:HK57:119:1982
Crimson Tide:134:2031
Die Hard:152:2981
The Hill:KL223:63:2972
Aliens:HK11:532:4892
Star Wars:HK38:301:4102
A Few Good Men:KL87:445:5851
Toy Story:HK65:239:3972
系统sort
sort可以用来对/etc/passwd文件中用户名进行分类。这里需要以第1域即注册用户名分类,然后管道输出结果到awk,awk打印第一域。

[sam@chenwy sam]$ cat passwd | sort -t: +0 | awk -F: '{print $1}'
adm
apache
bin
chenwy
daemon
desktop
.......
sort还可以用于d f命令,以递减顺序打印使用列。下面是一般d f输出。

[sam@chenwy sam]$ df
文件系统               1K-块        已用     可用 已用% 挂载点
/dev/sda2              5162828   2289460   2611108  47% /
/dev/sda1               497829     13538    458589   3% /boot
none                     99352         0     99352   0% /dev/shm
使用- b选项,忽略分类域前面的空格。使用域4(+ 4),即容量列将分类求逆,最后得出文件系统自由空间的清晰列表。

[sam@chenwy sam]$ df | sort -b -r +4
文件系统               1K-块        已用     可用 已用% 挂载点
/dev/sda2              5162828   2289460   2611108  47% /
/dev/sda1               497829     13538    458589   3% /boot
none                     99352         0     99352   0% /dev/shm
在一个文本文件中存入所有I P地址的拷贝,这样查看本机I P地址更容易一些。有时如果管理员权限下,就需要将此文件分类。将I P地址按文件中某种数值次序分类时,需要指定域分隔符为句点。这里只需关心I P地址的最后一段。分类应从此域即域3开始,未分类文件如下:

[sam@chenwy sam]$ vi iplist
[sam@chenwy sam]$ cat iplist
193.132.80.123 dave tansley
193.132.80.23 HP printer 2nd floor
193.132.80.198 JJ. Peter's scanner
193.132.80.38 SPARE
193.132.80.78 P.Edron
分类后结果如下:

[sam@chenwy sam]$ sort -t. +3n iplist
193.132.80.23 HP printer 2nd floor
193.132.80.38 SPARE
193.132.80.78 P.Edron
193.132.80.123 dave tansley
193.132.80.198 JJ. Peter's scanner
sort教程到此结束

上一篇:使用head和tail对sort输出分类 下一篇:去除重复内容的uniq用法介绍

power by soyo123 2007-2008