Linux -- 文件统计常用命令
标签(空格分隔): Linux
sort -- 文件内排序命令
sort将文件的每一行作为一个单位,相互比较,比较原则是从首字符向后,依次比较其ASCII码。
- 按每行升序排序:
sort seq.txt
- 在输出行中去除重复行:
sort -u seq.txt
- 输出行按降序排序:
sort -r seq.txt
- 将输出结果重定向写入新的文件:
sort seq.txt > seq1.txt
- 将输出结果重定向写入原来文件:
sort seq.txt -o seq.txt
- 输出结果以数值而非ASCII码排序:
sort -n seq.txt
- 按照指定列排序:
sort -t ':' -k 2, 2nb seq.txt
-t
指定分隔符,-k
指定按照哪一列排序如果分隔符为制表符,则使用
-t $'\t'
- 稳定排序:
sort -s seq.txt
- 合并多个有序文件
sort -m seq.txt seq1.txt
uniq
对于连续重复出现的行,只会打印第一行,而不会打印其他重复行。与sort连用。
- 一般用法:
uniq seq.txt
- 打印出每行重复出现的次数:
uniq -c seq.txt
- 打印出出现多次(大于1次)的行:
uniq -d seq.txt
- 打印不存在重复行的行:
uniq -u seq.txt
- 忽略掉前n个域:(忽略掉前n个域,将第(n+1)以及之后的域当做关键字)
uniq -f n seq.txt
- 忽略掉前n个字符:
uniq -s n seq.txt
- 忽略掉前n个域和前m个字符:
uniq -f n -s m seq.txt
- d最多比较n个字符:
uniq -w n seq.txt
cut
cut命令用于打印出一个文件中指定的某几个域,或某几个字符,或某几个字节。
按字节打印
- 打印每行的第n个字节:
cut -b n seq.txt
- 打印每行的第1-n这个范围的字节:
cut -b -n seq.txt
- 打印每行的第n-最后范围的字节:
cut -b n- seq.txt
- 打印每行的第m-n这个范围的字节:
cut -b m-n seq.txt
- 打印多个范围的字节:
cut -b m-n,t-s seq.txt
按字符打印
- 打印每行的第n个字符:
cut -c n seq.txt
剩下的情况如按字节打印。
按域打印
cut 命令默认以制表符为一个分隔符。如果要自定义分隔符,用-d
指定。cut -d '分隔符'
- 打印每行的第n个域:
cut -d '分隔符' -f n seq.txt
paste
paste命令用来将多个文件中的内容并列打印,或横排打印。每行有多个域,每个域对应一个文件中相应行的内容。任意两个域之间默认用一个制表符隔开。如果某一行中,某个文件没有内容,则相应域为一个空串。
- 一般语法:
paste filename1 filename2 filename3
- 指定分隔符:
paste -d '分割符' filename1 filename2 filename3
- 横排打印:(先打印完一个文件中的所有行到一行中,再打印另外一个文件中的所有行到下一行)
paste -s -d '分隔符' filename1 filename2 filename3
split
split命令用来将一个文件按字节或者按行分割成多个小文件。
- 按字节分割成多个文件:
split -b m -a p -d --additional-suffix='额外的后缀字符串' filename output
-b
指定字节数,可以带单位,如K, M, G, T, P, E, Z, Y
;-a
指定分割成的子文件的文件名的后缀长度。默认情况下后缀为[a-z]的字符串。-d
指定后缀名为数字字符串,比如长度为2的数字字符串后缀为00,01,02...-additional-suffix
指定额外的字符串;- output 为所分割成的子文件的文件名的前缀。
- 按行数分割成多个文件:
split -l m -a p -d --additional-suffix='额外的字符串' filename output
- 如:
aplit -l 2 -a 2 seq.txt output
cat
将多个文件连接在一起并打印。一个文件连接到前一个文件的尾部。
- 一般语法:
cat filename1 filename2 filename3
- 显示行号:
cat -n filename1 filename2 filename3
join
- 左连接:
join -a 1 -t '分隔符' -1 m -2 n filename1 filename2
-a
指定文件编号(只能为1或者2)。命令行中第一个文件的编号为1,第二个文件的编号为2.- 如果不指定,则表示进行内连接。只会打印出匹配并合并后的行;
- 如果指定为1,则表示进行左连接;
- 如果指定为2,则表示进行右连接。
- 如果既指定为1,又指定为2,则表示进行全连接。除了会打印出两个文件中匹配并合并后的行外,还会打印出第一个文件和第二个文件中不匹配的行。
-1
是参数,用于指定需要进行匹配的第一个文件中的域的编号;-2
是参数,用于指定需要进行匹配的第二个文件中的域的编号。- 在打印合并后的内容的过程中,会先打印匹配的域,然后分别打印第一个文件和第二个文件中的剩余部分
- 右连接:
join -a 2 -t ':' -1 1 -2 1 seq.txt seq1.txt
- 全连接:
join -a 1 -a 2 -t ':' -1 1 -2 1 seq.txt seq1.txt
- 内连接:
join -1 1 -2 1 seq.txt seq1.txt
Linux -- 文件统计常用命令的更多相关文章
- Linux文件操作常用命令整理
收集.整理日常系统管理或维护当中的,常用到的一些关于文件操作的命令或需求,后续会慢慢补充.完善! 查看.生成指定目录的目录树结构? [root@DB-Server ~]#tree #当前目录 ...
- linux 文件相关常用命令
文件或者目录操控命令 1,cd切换目录. 其中- 代表前一个目录 2,mkdir 新建目录. 加上-p参数可以递归创建多级目录 mkdir -p test1/test2/test3 3,rmdir删除 ...
- Linux文件操作常用命令
一.一些文件操作命令. 1.cd /home 进入"home目录" 2.cd ../ 返回上一级目录 3.cd - 返回上次所在的目录 4.pwd 显示工程路径 5.ll 显示 ...
- linux:终端常用命令 + vi命令修改文件及保存 方法
首先介绍一下Ubuntu下各个目录的一般作用: / 这就是根目录,一台电脑有且只有一个根目录,所有的文件都是从这里开始的.举个例子:当你在终端里输入“/home”,你其实是在告诉电脑,先从/(根目录 ...
- Linux查看系统配置常用命令
Linux查看系统配置常用命令: 系统 # uname -a # 查看内核/操作系统/CPU信息# head -n 1 /etc/issue # 查看操作系统版本# cat /proc/cpuinfo ...
- linux vi编辑常用命令
linux vi编辑常用命令 来源:互联网 作者:佚名 时间:07-10 21:31:14 [大 中 小] linux vi编辑常用命令,需要的朋友可以参考下 vi编辑器中有三种状态模式 1. ...
- Linux 系统巡检常用命令
Linux系统巡检常用命令 # uname -a # 查看内核/操作系统# cat /etc/centos-release # 查看centos操作系统版本# cat /proc/cpuinfo ...
- linux 下 mysql 常用命令
linux 下 mysql 常用命令 阅读目录 ====================== 1.开启和关闭 1.1.开启 1.2.关闭 1.3.重启 2.登录 2.1.密码明文 2.2.密码密文 ...
- Linux学习之CentOS(二)--初识linux的一些常用命令
Linux学习之CentOS(二)--初识linux的一些常用命令 在VM上安装完了CentOS6.4以后,看着linux系统成功跑起来,心里小激动了一把......但是前方学习的道路还很遥远... ...
随机推荐
- [置顶] TortoiseGit和msysGit安装及使用笔记(windows下使用上传数据到GitHub)
eclipse .MyEclipse 配置安装 git:http://wenku.baidu.com/link?url=gMT4a7K6EJWAztuwun73oPHiKqlydEdn5F3S2Win ...
- zepto源码--核心方法6(显示隐藏)--学习笔记
在不引入zepto插件模块fx_metho其他ds的情况下,zepto默认的显示隐藏的函数只有show, hide, toggle,这里解释有个前提条件,就是没有引入zepto的fx_methods插 ...
- KeyValuePair
KeyValuePair用法(转)(2012-06-25 10:47:35) 转载▼ // 标签: keyvaluepair it KeyValuePair C# KeyValuePair< ...
- sdk 更新的时连接不上dl-ssl.google.com解决办法
今天有朋友说sdk的更新不了,借了个VPN给他也没解决问题,后来还是他自己解决了,下面分享下经验 这里介绍一种不需要FQ的解决办法,修改C:\Windows\System32\drivers\etc下 ...
- VMware安装的相关文章
1.在虚拟机中安装CentOS7(百度文库) 2.VM虚拟机下安装Centos7.0图文教程(centos中文站) 2016年8月10日11:30:03
- 白话学习MVC(八)Action的执行二
一.概述 上篇博文<白话学习MVC(七)Action的执行一>介绍了ASP.NET MVC中Action的执行的简要流程,并且对TempData的运行机制进行了详细的分析,本篇来分析上一篇 ...
- ionic获取焦点
功能需求:点击按钮后获取input输入框的焦点 获取焦点用jq focus()不成功,因为angular也不推荐,所以网上找了一个在focus封装成指令的方法 指令写法: .directive('my ...
- App软件开发的10个常用技巧
移动应用市场用户争夺战日益激烈,原来做APP拼想法拼创意拼是否抓住用户痛点.现在,精细化用户体验成为了一个APP能否留存用户的关键问题,一旦用户觉得体验不畅,马上就有竞品APP后补,如何开发高性能的移 ...
- iTween研究院之学习笔记Move移动篇
最近项目中需要加入一些模型移动的小动画,学习过程中发现了iTween这个类库.它主要的功能就是处理模型从起始点到结束点之间运动的轨迹.(移动,旋转,音频,路径,摄像机等)它是一个开源 ...
- 解决 Virtual Box 启动 Cannot load R0 module supLoadModule returned VERR_LDR_MISMATCH_NATIVE Failed to register ourselves as a PCI Bus (VERR_MODULE_NOT_FOUND)
返回 代码:E_FAIL (0x80004005)组件:Console界面:IConsole {8ab7c520-2442-4b66-8d74-4ff1e195d2b6} 原因: 我新建了一个vdi文 ...