文件夹内的文本行数_重温生物信息重要的文本处理命令(实例命令及解释)
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单行命令介绍
文件夹内的文本行数_重温生物信息重要的文本处理命令(实例命令及解释)相关推荐
- java 统计文本行数_统计文本文件的行数,单词书,字节数
[java]代码库import java.io.*; /** * 统计文本文件的行数,单词书,字节数 */ class WordCount { public static int words = 1; ...
- 合并文件夹内所有Excel文件(目前仅限于合并单层文件夹,如果文件夹下面有文件夹,暂未加入此功能,默认合并所有文件的所有Sheet)优化文件名_变更为:文件夹名字 + 合并的文件-(xls+xlsx)
几经修改,终于算是成为自己较为满意的一个VBA程序(2020-6-6修正) 然,因个人才疏学浅,如有疏漏,希望各位前辈多多指正~在下先行谢过~ 1.考虑到Excel新建Sheet的命名规则 2.考虑到 ...
- 统计多个文件夹内多个Excel的数据行数
#path为文件夹路径,lis为要放行数的空list,filename该路径下的各文件夹名称 #filename_1为文件夹的一个文件夹内的所有表的名称,filename_1为不含后缀名的表名称 im ...
- 制作动态相册的python知识点_动感网页相册 python编写简单文件夹内图片浏览工具...
不知道大家有没有这样的体验,windows电脑上查看一张gif图,默认就把IE给打开了,还弹出个什么询问项,好麻烦的感觉.所以为了解决自己的这个问题,写了个简单的文件夹内图片浏览工具. 效果图 以E盘 ...
- 在reader中勾选pdf复选框_如何让文件夹内PDF图片显示图标
原标题:如何让文件夹内PDF图片显示图标 电脑小知识,值得收藏 有些网友Win 7系统的64位版本安装了Adobe Reader软件之后,发现PDF文件在系统中无法显示缩略图,这样看起来不是很方便,每 ...
- [VS_C#实战案例](1)批量提取文件夹内txt文件的指定字符串生成excel表格
[VS_C#实战案例](1)批量提取文件夹内txt内容生成excel表格 个人边学习边开发的日常总结,发布在此与各位交流.共同进步. 语言:c# 软件:visual studio 实现功能:提取指定文 ...
- 将电脑文件夹内的文件名批量导入到Excel表格中
需求:将文件夹内的文件名称批量整理到EXCEL表格 步骤: 1.在文件夹内单机鼠标右键新建一个文本文档 2.打开文档,输入:dir /b >list.csv ctrl+s 保存. 3.将文本文档 ...
- 批量提取同一文件夹内相同后缀名文件
1.在文件夹内新建TXT文本文档: 2.打开TXT文本,输入dir *.*/b>a.xls 并保存: 3.将TXT文本后缀名改成 .bat : 4.双击打开即可.
- Java File文件流读取文件夹内的文件并替换文件内容
Java File文件流读取文件夹内的文件并替换文件内容 一.前言 二.代码 三.运行结果 一.前言 批量读取文件夹内的文件,并替换各个文件的内容 二.代码 新建一个普通 Java 项目就可以,创建文 ...
最新文章
- PHP rss聚合,利用PHP和AJAX创建RSS聚合器
- 【NOIP2015】【Luogu2661】信息传递(有向图最小环)
- JmsTemplate sendAndReceive 设置超时
- Asp.Net MVC开源CMS - Orchard
- MongoDB开发环境搭建(windows)
- 不是css3新增的技术,CSS3中的5个有趣的新技术
- 什么是命名空间?php命名空间的基本应用分享
- 共同努力做好NBear!
- android ListView 九大重要属性详细分析
- LeetCode: Substring with Concatenation of All Words
- 【BZOJ3894】文理分科(最小割)
- 如何计算网络地址和广播地址
- 【Codecs系列】HEVC-SCC(四):SCC IBC句法
- 德国华人餐饮外卖的春天?
- 黑洞(black hole)
- 浏览器与web服务器的交互过程
- matlab修复模糊图片论文,图像算法论文,关于运动模糊图像复原算法相关参考文献资料-免费论文范文...
- c++学习笔记-二进制文件操作(哔站-黑马程序员c++教学视频)
- MPU6050的dmp代码移植的过程--转
- stem在计算机课程中的应用,浅谈小学信息技术课程中STEAM教育的应用
热门文章
- c语言线性顺序表,C语言程序——线性顺序表.doc
- 计算机一级windows系统操作知识点,计算机一级考试:高分必看知识点之windows操作...
- c++判断奇偶_第十一届(今年)蓝桥杯省模拟赛 试题+源码 C/C++详解
- Mac精品软件分享第一期
- 部署项目到Linux服务器步骤
- Memcached下载与安装
- 如何部署一台DELL虚拟化服务器:CentOS7.4系统,虚拟化技术
- 请画出使用mapreduce对英文句子_「Postgresql架构」用MapReduce的方式思考,但使用SQL...
- python global 变量_python global全局变量 模块通信问题
- web前端基础(02html表格)