标签(空格分隔): 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 -- 文件统计常用命令的更多相关文章

  1. Linux文件操作常用命令整理

    收集.整理日常系统管理或维护当中的,常用到的一些关于文件操作的命令或需求,后续会慢慢补充.完善! 查看.生成指定目录的目录树结构?   [root@DB-Server ~]#tree   #当前目录 ...

  2. linux 文件相关常用命令

    文件或者目录操控命令 1,cd切换目录. 其中- 代表前一个目录 2,mkdir 新建目录. 加上-p参数可以递归创建多级目录 mkdir -p test1/test2/test3 3,rmdir删除 ...

  3. Linux文件操作常用命令

    一.一些文件操作命令. 1.cd /home  进入"home目录" 2.cd ../ 返回上一级目录 3.cd -  返回上次所在的目录 4.pwd 显示工程路径 5.ll 显示 ...

  4. linux:终端常用命令 + vi命令修改文件及保存 方法

    首先介绍一下Ubuntu下各个目录的一般作用: /  这就是根目录,一台电脑有且只有一个根目录,所有的文件都是从这里开始的.举个例子:当你在终端里输入“/home”,你其实是在告诉电脑,先从/(根目录 ...

  5. Linux查看系统配置常用命令

    Linux查看系统配置常用命令: 系统 # uname -a # 查看内核/操作系统/CPU信息# head -n 1 /etc/issue # 查看操作系统版本# cat /proc/cpuinfo ...

  6. linux vi编辑常用命令

      linux vi编辑常用命令 来源:互联网 作者:佚名 时间:07-10 21:31:14 [大 中 小] linux vi编辑常用命令,需要的朋友可以参考下   vi编辑器中有三种状态模式 1. ...

  7. Linux 系统巡检常用命令

    Linux系统巡检常用命令   # uname -a # 查看内核/操作系统# cat /etc/centos-release # 查看centos操作系统版本# cat /proc/cpuinfo ...

  8. linux 下 mysql 常用命令

    linux 下 mysql 常用命令   阅读目录 ====================== 1.开启和关闭 1.1.开启 1.2.关闭 1.3.重启 2.登录 2.1.密码明文 2.2.密码密文 ...

  9. Linux学习之CentOS(二)--初识linux的一些常用命令

    Linux学习之CentOS(二)--初识linux的一些常用命令 在VM上安装完了CentOS6.4以后,看着linux系统成功跑起来,心里小激动了一把......但是前方学习的道路还很遥远... ...

随机推荐

  1. java之浮点数(笔记)

    1.在计算机中,浮点数并不同等于小数. public static void main(String[] args) { double b1 = 0.1; double b2 = 0.2; doubl ...

  2. Ubuntu Linux上安装配置Mysql

    一.安装: 三种安装方式: 1. 从网上安装 sudo apt-get install mysql-server.装完已经自动配置好环境变量,可以直接使用mysql的命令. 注:建议将/etc/apt ...

  3. Visual Studio中删除所有空行

    解决方法如下: 使用快捷键Ctrl+H,显示查找和替换视图菜单 Find what(查找内容):^:b*$\n Replace with(替换为):[Empty] (空字符串,什么都不用填) Look ...

  4. Thinking in Java——笔记(6)

    Access Control A piece of work isn't good until it's been rewritten, often many times. Thus a primar ...

  5. 关于HTML5中video标签的奇怪现象

    很多人刚开始学习html5 的时候在使用video标签时会出现这样的情况: 发现video标签在网页中播放时只有声音但是没有图像,如: <!DOCTYPE html> <html&g ...

  6. C输入输出函数与缓冲区

    #转 对C语言输入输出流和缓冲区的深入理解C语言缓冲区(缓存)详解缓冲区又称为缓存,它是内存空间的一部分.也就是说,在内存空间中预留了一定的存储空间,这些存储空间用来缓冲输入或输出的数据,这部分预留的 ...

  7. 阅读廖雪峰老师git教程笔记

    1.首先git是目前世界上最先进的分布式版本控制系统之一.所谓版本控制是针对工作中一些普遍的现象的. 比如,你写一份文档,期间,不断的改善,每次修改都会进行备份,久而久之,会有很多版本的同一份文档,但 ...

  8. iis 部署 webapi2.0 访问报错解决

    本机安装的VS2013 开发环境,在IIS部署WebApi2.0时,应用程序池并没有.NET4.5的选项. 网上搜索一番得知: 1..NET 4.5本质上还是4.0,属于递增式的更新,所以对IIS 来 ...

  9. syslog-ng日志系统

    一.基础syslog-ng作为syslog的替代工具,可以完全替代syslog的服务,并且通过定义规则,实现更好的过滤功能.系统自带版本(我的是红旗,不同系统用不同的方式查询): 引用 # rpm - ...

  10. validate 的插件用法

    1.不推荐使用控件方式验证的方式(因为他严重的影响的html代码,也不便于语义化) <input type="text" class="required" ...