linux文本处理命令是一类对文件进行操作的命令,通过使用文本处理命令,可以轻松的对文件进行排序,拆分,合并等操作,熟练掌握文本处理命令,在生物信息文本处理中,有十分重要的意义。

01

cat 查看文件内容命令

以下为最常用的几个命令实例

命令

解释

cat test.txt

获取test.txt所有内容(全部获取)

cat -n test.txt

对输出的所有行编号

cat -b test.txt

对非空输出行编号

cat –s test.txt

去空行,但只能相邻空行,并且保留一个

cat > 1

快速创建文件1,直接输入内容,ctrl+c保存并退出

注意事项:

遇到大文件的时候,不要直接cat,因为cat会一直把所有内容打印到屏幕上,造成长时间处于打印状态,如遇到这种情况,连续不间断的敲击ctrl+c组合键退出打印状态

相关衍生命令:

cat还有两个常用的相关命令:

1.zcat  查看压缩文件

2.tac  从结尾往上看内容

二.sort 排序命令

对数据的某一列按照文本,数字等排序方法进行排序,也可以进行字符内排序,以下为最常用的几个命令实例

命令

解释

sort A.txt

默认按照-k 1 字符串排序

sort -k 2nr A.txt

按照第二列数字降序

sort –k 2nr –k 3n A.txt

按照第二列数字降序,第三列升序

sort -t $':’

域分隔符的使用(默认空格或者\t)

sort -k1.4 -n C.txt

字符内排序

三.uniq 去除重复命令

对相同的行去重复,统计重复,保留重复等,还可指定某一列做为去重复关键字去重复,以下为最常用的几个命令实例

命令

解释

cat x.txt

显示内容

uniq –c x.txt

去重复并且在前显示重复次数

uniq –d x.txt

只显示重复

uniq –cd x.txt

显示重复及重复次数

uniq –u x.txt

显示不重复

uniq –f 1 test.txt

忽略第一列进行去重复

注意事项:

uniq需要配合sort进行使用,把重复的内容排序到一起,以下为最常用的几个命令实例

命令

注释

cat x.txt

显示内容

uniq –c x.txt

去重复并且在前显示重复次数

uniq –d x.txt

只显示重复

uniq –cd x.txt

显示重复及重复次数

uniq –u x.txt

显示不重复

uniq –f 1 test.txt

忽略第一列进行去重复

四.wc 统计命令

统计指定文件中的字节数、字数、行数,并将统计结果显示输出,以下为最常用的几个命令实例

命令

解释

cat test.txt

看看读取的内容

wc –l test.txt

统计行数

wc –c test.txt

统计字节数

wc –L test.txt

打印最长行的长度

五.grep/egrep命令

grep为过滤命令,一般情况下支持基本正则表达式,可以通过参数-E支持扩展正则表达式,常用命令如下:

解释

grep '10' test.txt

过滤含有10的行10的行

grep -n '10' test.txt

打印包含10的行和行标10的行和行标

grep -c '10' test.txt

统计包含10的行数10的行数

grep –i 'm' test.txt

打印包含m和M的行m和M的行

grep -iv 'm'

统计不包含m和M的行m和M的行

grep 'energywise' *

在当前目录搜索带'energywise'行的文件'energywise'行的文件'energywise'行的文件'energywise'行的文件

grep -r 'energywise' *

在当前目录及其子目录下搜索'energywise'行的文件'energywise'行的文件'energywise'行的文件'energywise'行的文件

grep一般情况下支持基本正则表达式,可以通过参数-E支持扩展正则表达式,另外grep单独提供了一个扩展命令叫做egrep用来支持扩展正则表达式,这条命令和grep -E等价。虽然一般情况下,基本正则表达式就够用了,以下为最常用的几个命令

元数据

意义

范例

^

搜寻以word开头的行。

grep –n ‘^#’ regular.txt  #搜寻以#开头的脚本注释行

$

搜寻以word结束的行

grep –n ‘.$’ regular.txt  #搜寻以‘.’结束的行

.

匹配任意一个字符

grep –n ‘e.e’ regular.txt #匹配e和e之间有任意一个字符,可以匹配eee,eae,eve,但是不匹配ee。

\

转义字符。

grep –n ‘\.' regular.txt #过滤含有.的行

*

前面的字符重复0到多次

grep –n ‘go*gle’ regular.txt #例如匹配gle,gogle,google,gooogle等等

[list]

匹配一系列字符中的一个。

grep –n ‘g[lf]’ regular.txt  #例如:匹配gl,gf。

[n1-n2]

匹配一个字符范围中的一个字符。

grep –n ‘[0-9]’ regular.txt  #例如:匹配数字字符

[^list]

匹配字符集以外的字符

grep –n ‘[^o]‘ regular.txt #匹配非o字符

\{n1,n2\}

前面的字符重复n1,n2次

grep –n ‘go\{2,3\}gle’ regular.txt  #匹配google,gooogle。

\

单词是的开头。

grep –n ‘\

word\>

匹配单词结尾

grep –n ‘tion\>’ regular.txt #匹配以tion结尾的单词

六.sed命令

sed是一个强大的按行处理的命令,常用的命令如下:

命令

注释

sed -n 'p' filename

//输出所有行,等同于cat afile

sed -n '3p' filename

//输出第3行

sed -n '3l' filename

//输出第3行,其中非打印字符以ASCII码表示

sed -n '3,5p' filename

//输出第3~5行

sed -n 'p;n' filename

//输出所有的奇数行,n表示读入下一行文本

sed -n 'n;p' filename

//输出所有的偶数行,n表示读入下一行文本

sed -n '1,5{p;n}' filename

//输出第1~5行之间间的所有奇数行(第1、3、5行)

sed -n '10,${n;p}' filename

//输出第10行至文件尾之间的所有偶数行

sed -n '/xml/p' filename

//输出包含xml的行

sed -n '4,/xml/p' filename

//输出从第4行至第一个包含xml的行

sed -n '/xml/=' afile filename

//输出包含xml的行所在的行号,=用来表示行号

sed -n '/^install/p' filename

//输出以install开头的行

sed -n '/noarch$/p' filename

//输出以noarch结尾的行

sed -n '$p' afile filename

//输出最后一行

sed -n '/bsystemb/p' filename

//输出包含独立单词system的行,b 用来界定单词

七.awk命令

是一个最强大的文本分析工具,以下列常用文本处理的写法:

命令

注释

awk '{print $0}' filename

打印全部

awk '{print $1}' filename

打印第一列

awk '{print $NF}' filename

打印最后一列

awk '/chr13/||/chr23/' filename

过滤含有chr13或者chr23

awk '{if($2>20&&$3>30){print}}' filename

过滤第二行大于20并且第三行大于30的行

awk -F ':' '{print $1}' file

以:作为域分割符,打印第一列

八.cut命令

cut命令命令从文件的列剪切字节、字符、域,并将这些字节、字符,域,输出出来,下面为几个常见的用法:

命令

解释

cut -b 3-5,8

提取第3-5 和第8个字节(bytes)。注意顺序不能写乱

cut –c 3-5,8

提取第3-5 和第8个字符(characters),注意与字节的区别。

cut -d ":" -f 2- B.txt

按:分割域(fields)

九.split命令

split命令可以按照行或者按照字节分割文件,以下列常用文本处理的写法:

命令

解释

split –l 100 file.txt

生成xaa,xab …

split -a 3 -d -l 100 file.txt "file"

生成file000,file001 …

十.paste命令

Paste命令可按列合并命令,可以很轻松的将两个文件按列合并,下面是常见的举例:

命令

解释

paste a.txt b.txt c.txt > all1.txt

将文件a.txt,b.txt,c.txt 按照列合并(列之间为\t)

paste -d ':' a.txt b.txt c.txt > all2.txt

将文件a.txt,b.txt,c.txt 按照列合并(列之间为:)

十一.xargs

xargs用作替换工具,读取输入数据重新格式化后输出。Xargs命令常跟管道连用,处理管道中的数据流

命令

解释

cat test.txt | xargs

多行输入单行输出

cat test.txt | xargs -n3

-n选项多行输出

echo "nameXnameXnameXname" | xargs -dX

-d选项可以自定义一个定界符

十二.comm

comm命令比较两个文件的相同和不同,下面为常用的命令举例:

命令

解释

comm1.txt 2.txt

比较两文件的不同,默认输出3列,第一列为1文件中独有的,第二列为2文件中独有的,第三列为两文件共同的

comm -12 1.txt 2.txt

不显示1和2列,即显示两者共有的元素

comm -23 1.txt 2.txt

不显示2和3列,即显示1中独有的

comm -13 1.txt 2.txt

不显示2和3列,即显示1中独有的

comm -3 1.txt 2.txt |sed's/\t//g'

求两者并集

注意事项:两个比较的文件需要排序后进行

好了linux常用命令就介绍到这里,按照这些实例好好练习,加上自己的融会贯通,相信你很快就会成为快速文本处理的高手

文:许德德排版:市场部推荐阅读:linux常用命令送给热情的粉丝--awk命令之计算Perl单行命令介绍

文件夹内的文本行数_重温生物信息重要的文本处理命令(实例命令及解释)相关推荐

  1. java 统计文本行数_统计文本文件的行数,单词书,字节数

    [java]代码库import java.io.*; /** * 统计文本文件的行数,单词书,字节数 */ class WordCount { public static int words = 1; ...

  2. 合并文件夹内所有Excel文件(目前仅限于合并单层文件夹,如果文件夹下面有文件夹,暂未加入此功能,默认合并所有文件的所有Sheet)优化文件名_变更为:文件夹名字 + 合并的文件-(xls+xlsx)

    几经修改,终于算是成为自己较为满意的一个VBA程序(2020-6-6修正) 然,因个人才疏学浅,如有疏漏,希望各位前辈多多指正~在下先行谢过~ 1.考虑到Excel新建Sheet的命名规则 2.考虑到 ...

  3. 统计多个文件夹内多个Excel的数据行数

    #path为文件夹路径,lis为要放行数的空list,filename该路径下的各文件夹名称 #filename_1为文件夹的一个文件夹内的所有表的名称,filename_1为不含后缀名的表名称 im ...

  4. 制作动态相册的python知识点_动感网页相册 python编写简单文件夹内图片浏览工具...

    不知道大家有没有这样的体验,windows电脑上查看一张gif图,默认就把IE给打开了,还弹出个什么询问项,好麻烦的感觉.所以为了解决自己的这个问题,写了个简单的文件夹内图片浏览工具. 效果图 以E盘 ...

  5. 在reader中勾选pdf复选框_如何让文件夹内PDF图片显示图标

    原标题:如何让文件夹内PDF图片显示图标 电脑小知识,值得收藏 有些网友Win 7系统的64位版本安装了Adobe Reader软件之后,发现PDF文件在系统中无法显示缩略图,这样看起来不是很方便,每 ...

  6. [VS_C#实战案例](1)批量提取文件夹内txt文件的指定字符串生成excel表格

    [VS_C#实战案例](1)批量提取文件夹内txt内容生成excel表格 个人边学习边开发的日常总结,发布在此与各位交流.共同进步. 语言:c# 软件:visual studio 实现功能:提取指定文 ...

  7. 将电脑文件夹内的文件名批量导入到Excel表格中

    需求:将文件夹内的文件名称批量整理到EXCEL表格 步骤: 1.在文件夹内单机鼠标右键新建一个文本文档 2.打开文档,输入:dir /b >list.csv ctrl+s 保存. 3.将文本文档 ...

  8. 批量提取同一文件夹内相同后缀名文件

    1.在文件夹内新建TXT文本文档: 2.打开TXT文本,输入dir *.*/b>a.xls   并保存: 3.将TXT文本后缀名改成  .bat : 4.双击打开即可.

  9. Java File文件流读取文件夹内的文件并替换文件内容

    Java File文件流读取文件夹内的文件并替换文件内容 一.前言 二.代码 三.运行结果 一.前言 批量读取文件夹内的文件,并替换各个文件的内容 二.代码 新建一个普通 Java 项目就可以,创建文 ...

最新文章

  1. PHP rss聚合,利用PHP和AJAX创建RSS聚合器
  2. 【NOIP2015】【Luogu2661】信息传递(有向图最小环)
  3. JmsTemplate sendAndReceive 设置超时
  4. Asp.Net MVC开源CMS - Orchard
  5. MongoDB开发环境搭建(windows)
  6. 不是css3新增的技术,CSS3中的5个有趣的新技术
  7. 什么是命名空间?php命名空间的基本应用分享
  8. 共同努力做好NBear!
  9. android ListView 九大重要属性详细分析
  10. LeetCode: Substring with Concatenation of All Words
  11. 【BZOJ3894】文理分科(最小割)
  12. 如何计算网络地址和广播地址
  13. 【Codecs系列】HEVC-SCC(四):SCC IBC句法
  14. 德国华人餐饮外卖的春天?
  15. 黑洞(black hole)
  16. 浏览器与web服务器的交互过程
  17. matlab修复模糊图片论文,图像算法论文,关于运动模糊图像复原算法相关参考文献资料-免费论文范文...
  18. c++学习笔记-二进制文件操作(哔站-黑马程序员c++教学视频)
  19. MPU6050的dmp代码移植的过程--转
  20. stem在计算机课程中的应用,浅谈小学信息技术课程中STEAM教育的应用

热门文章

  1. c语言线性顺序表,C语言程序——线性顺序表.doc
  2. 计算机一级windows系统操作知识点,计算机一级考试:高分必看知识点之windows操作...
  3. c++判断奇偶_第十一届(今年)蓝桥杯省模拟赛 试题+源码 C/C++详解
  4. Mac精品软件分享第一期
  5. 部署项目到Linux服务器步骤
  6. Memcached下载与安装
  7. 如何部署一台DELL虚拟化服务器:CentOS7.4系统,虚拟化技术
  8. 请画出使用mapreduce对英文句子_「Postgresql架构」用MapReduce的方式思考,但使用SQL...
  9. python global 变量_python global全局变量 模块通信问题
  10. web前端基础(02html表格)