Linux命令备忘实例——排序和基本统计命令
1.sort
1.概览
sort按照指定的参数进行排序,支持按照数字排序和字典顺序排序。
排序的选项如下:
其中选项“-n”是使用数字进行排序(默认是按照文字字典顺序排序的)。还有更多额外选项可供选择:
2.特性与实例
1.指定排序字段
对于具有类似表格形式的文件来说,可以给定字段分隔符后,对指定字段进行排序,这是非常有效的功能。其中“-k”指定进行排序的字段,“-t”指定排序字段的分隔符(默认为tab键)。
user@ubuntu:~$ cat /etc/passwd | sort -t ":" -k 3
root:x:0:0:root:/root:/bin/bash
user:x:10:12:.....
....
2.排序顺序指定
sort支持多种排序顺序,-d指定字典顺序,-f忽略大小写,-i忽略不可打印字符,-h依据人类可读数值排序(3K、1G等),-n指定数值排序,-r指定逆序,-R使用随机排序,-M指定按月份排序。
user@ubuntu:~$ sort -nr file.txt
user@ubuntu:~$ sort -M file.txt
user@ubuntu:~$ sort -R file.txt
3.合并和检测
对于一个是否排序过的文件,可以使用-C选项进行检测,另外,对于多个已经排过序的文件,可以使用-m选项进行合并。
user@ubuntu:~$ sort -m sorted1 sorted2
sort -C file;
if [ $? -eq 0 ]; thenecho sorted!;
elseecho unsorted!;
fi
2.uniq
在使用sort排序完成之后,对于完全相同的行会连续排列在一起,为了去除这些重复的行,uniq工具就是专为此准备的:将连续的重复行删除只显示一行。
1.概览
uniq只能使用排序过的数据输入,因此uniq要么使用管道,要么使用排序过的文件,以这种方式与sort命令结合起来使用。
2.特性实例
除了基本的从排过序的文件中去除重复行的功能外,还提供了其他选项增强了这个命令的功能。-u选项只输出唯一的行,-d选项只输出重复的行,-c选项可以为每一行加上出现的次数的前缀。
user@ubuntu:~$ echo -e "bash\ntest\ntest\nroot" | uniq -u
bash
root
user@ubuntu:~$ echo -e "bash\ntest\ntest\nroot" | uniq -d
test
user@ubuntu:~$ echo -e "bash\ntest\ntest\nroot" | uniq -c1 bash2 test1 root
使用上述的-c选项就可以有多重活用,最常用的就是统计文件词频信息,基本步骤就是将文件所有连续空格压缩为一个,然后将所有空格替换为换行符使得每一个单词变为单独一行。最后使用sort进行排序使得相同单词连续排布以及uniq -c进行统计。
user@ubuntu:~$ echo -e "bash\ntest a bash\ntest\nroot" | tr -s ' ' '\n' | sort | uniq -c1 a2 bash1 root2 test
另外可以使用-s和-w来指定键:-s跳过前N个字符,-w指定用于比较的最大字符数。这样就可以对某个字段进行排序了。最后一个实例,可以使用uniq得出字符串样式。任何一个字符串,只要一个字符重复出现就在前面加上它出现过的次数。
user@ubuntu:~$ echo abcbhdccd | sed 's/[^\n]/&\n/g' | sed '/^$/d' | sort | uniq -c | tr -d ' \n'
1a2b3c2d1h
3.wc
wc命令就是word count的简称,顾名思义就是对文件进行基本的单词统计。
1.概览
wc的默认是按照行数、单词、字符、字节、最长的行的长度这个顺序打印出文件的统计信息。从上述选项中可以看出,我们可以指定不所需要的信息输出。
2.实例
不管是指定一个还是多个需要输出的选项,各自的输出相对顺序是不变的。
<pre class="prettyprint ruby" http:="" www.ahlinux.com="" start="" cmd="" 9040.html"="" target="_blank" style="margin-top: 0px; margin-bottom: 0px; padding: 0.3em;">nlo, Consolas, 'Courier New', monospace; color: rgb(51, 51, 51); border-radius: 4px; margin-top: 0px; margin-bottom: 1.5em; line-height: 1.5em; word-break: break-all; word-wrap: break-word; white-space: pre-wrap; border: 1px solid rgba(0, 0, 0, 0.14902); overflow-y: auto; background-color: rgb(246, 246, 246);">user@ubuntu:~$echo -e "this is a new line \nsecond line" | wc -l2user@ubuntu:~$echo -e "this is a new line \nsecond line" | wc -w7user@ubuntu:~$echo -e "this is a new line \nsecond line" | wc -c32user@ubuntu:~$echo -e "this is a new line \nsecond line" | wc -L19
Linux命令备忘实例——排序和基本统计命令相关推荐
- linux程序实例获取,Linux命令备忘实例(4)——获取内容
Linux中的所有内容都是以文件的方式表示的,会有很多需求需要我们获取文件的内容,查看部分或者全部内容.当然最直接方式就是使用编辑器打开文件查看,比如vim.vi.emacs等.这里主要关注的是she ...
- KVM 虚拟机 virsh 命令备忘单
这是一个全面的 virsh 命令备忘单: virsh 是 KVM 虚拟机的命令管理用户界面.virsh 可用于创建.暂停.重新启动和关闭域.此外,virsh 可用于列出您的虚拟化管理程序平台中可用的当 ...
- linux dprintk 日志,linux命令备忘
2012-09-06 07:16 1234人阅读 评论(0) links -dump your.html html2txt lynx --dump your.html html2txt ldconfi ...
- RedHat Yum 命令备忘单
Yum 是Red Hat和基于 Red Hat 的 Linux 发行版中的包管理器,它允许您管理 Red Hat 系统上软件的各个方面. 你不会在这里详细学习 Yum 命令,相反,这个 Yum 备忘单 ...
- freedos 常用命令_庆祝FreeDOS 24周年:有用的命令备忘单
freedos 常用命令 FreeDOS在6月29日满24岁. FreeDOS是一个完整的,免费的,与DOS兼容的操作系统,您可以使用它来玩经典的DOS游戏 , 运行商务软件或开发嵌入式系统. 在MS ...
- 实用收藏Linux命令备忘
系统操作 #使用shutdown命令马上重启系统 [root@H32 ~]# shutdown –r now #使用shutdown命令马上关闭系统 [root@H32 ~]# shutdown – ...
- linux常用命令备忘(不断更新中...)
1.模糊查找字符串 # find . "*" | xargs grep "ro.hardware" -rn --color # find -name " ...
- linux git 命令备忘
1.查看某次提交的文件文件列表(不包括修改内容) git log --stat 2.清除本地所有修改(包括已加入缓冲区文件) git reset --hard git clean -xdf 3.命令 ...
- 一些比较少用但比较有用的linux命令备忘
网络相关 ssh 反向代理 ssh -fCNR 10000:localhost:22 userB@B.B.B.B B.B.B.B是一个外网机器B的IP ssh -p 10000 userA@local ...
最新文章
- 模型加速--CLIP-Q: Deep Network Compression Learning by In-Parallel Pruning-Quantization
- css3的动画特效--动画序列(animation)
- [CF1076E]Vasya and a Tree
- fcm模糊聚类matlab实例_一文学会使用MATLAB将仿真、试验数据可视化附带源程序
- ASP.NET和PHP全面对比
- SQLlite 分页
- MATLAB中如何删除坐标上已画出的内容
- 剑指offer 面试题17. 打印从1到最大的n位数
- 博弈论学习笔记(六)纳什均衡之约会游戏与古诺模型
- 在使用Assimp库时编译器报错:C2589 “(”:“::”右边的非法标记 AssimpLoadStl
- 穿戴-智能穿戴-ProjectGlass:谷歌眼镜(Google Project Glass)
- java openoffic linux_Linux操作系统下安装Openoffice3.2
- CvPoint及CvPoint2D32f
- WPS如何并排放置两张图片_动图演示如何制作XRD叠图与PDF卡线图
- 老生常谈:如何快速提升项目管理和团队效率?
- h5+css3简单实现网页端五子棋游戏1.0版
- Python wxpy 操作微信 大全集
- ubuntu开机出现initramfs该如何解决
- exp table oracle,oracle中exp,imp的使用详解
- C++中cout的格式使用