• 当前位置: 主页 > Linux安装教程 > 系统设置 >

    Linux文本操作常用命令及用法

    时间:2022-06-23 15:02来源:网络整理 作者:Linux先生 举报 点击:
    湖南成人高考 成人高考 成人高考 成人高考  成人高考 成人高考 
    Linux文本操作常用命令及用法,linux,字符串,uniq,163,文本文件

    在Linux系统里常用于文本查看、操作、统计的命令:

    head/tail,cat/tac,less/more wc,sort,uniq cut,paste

    通过多敲键盘,形成手感肌肉记忆,熟练掌握这些命令,在以后生信分析中游刃有余。以下是每个命令的详细的介绍(主要是跟着生信技能树小郭老师学习做的笔记)

    接下来通过示例把10个命令的常用参数和用法展示出来:

    1.cat命令: Concatenate 查看文本文件的内容,输出到屏幕

    常见参数

    -A ## 打印所有内容,包括特殊字符,如制表符 -n ## 打印出所有行号, -b ##参数仅打印非空白行行号

    参数的用法介绍:

    ####-A参数 cat readme.txt##对比有没有加-A cat -A readme.txt##-A把空隔符显示出来,如换行符可视化 #显示制表符的例子 cat >hope ##重定向一个文件名为beauty wish to master Linux very well 66 ##中间用tab键打出的空格 ^C##换行后按control C cat -A hope ##加-A参数 wish to master Linux very well^I66$ ##显示^I两个制表符,还有换行符$ \t##特定为编程制表符 \n##为换行符 ####-n参数 cat readme.txt##显示文件原始信息 cat -n readme.txt##加-n 一行行排列内容 ####-b参数,自行去查使用方法 cat --help

    常见用法

    cat > file#重定向,注意有>号,把以下的文本保存到文件里,如果目录里没有file,其实可以理解新建文件且编辑 welcome to Biotrainee!#输入文本 ^C##按control C 退出 cat file ##查看文本写入的内容 #welcome to Biotrainee! cat readme.txt cat -n readme.txt ## 重定向(编辑文件) cat >file###如果file里面有内容,重定向会把原来的内容清空掉 Welcome to Biotrainee() ! ^C ## 这里是按Crtl C 退出 ## 查看 cat file Welcome to Biotrainee() ! cp /trainnee2/Aug1/readme.txt ./ ##到/trainnee2/Aug1复制readme.txt到./

    注意事项:

    cat >file 编辑文本结束时,另起一行再按control C,退出; 只能修改编辑的当行,使用退格键修改时,一定要按住control,和平时直接用的退格键不一样,在cat编辑下,按上下键也一样先按住control; 在开始第三行编辑,突然发现输入的第一行有错误,但是不能去修改第一行。只能重新再定向书写第一行,往后的内容粘贴复制。

    Linux文本操作常用命令及用法


    cat命令查看和编辑文本的用法

    cat命令可以查看文本,也可以编辑文本,编辑文本要加>符号,退出时,另起一行,按control C退出

    其它:

    zcat可以查看压缩的文本文件,tac逆向查看

    2.head、tail命令

    结合管道符|使用

    head / tail-n:查看文件的前/后 n 行,默认10(在R语言里head和tail默认是前6行)。

    head -n 20 Data/example.fq ## 查看 .bashrc 的最后 10 行 tail ~/.bashrc ## 查看前20行 head -n 20 Data/example.fq | tail -1 ##|代表管道符,前面的输出作为后面的输入,R语言管道符为%>% ls Data cat Data/example.gtf | head -n 3 ##读取前3行,因为屏幕小,显示就很乱 cat Data/example.gtf | tail -n 3 ##查看后3行 ####也可以不用管道符 head -n 3 Data/example.gtf3.less和more命令

    less命令用得最多,more命令用得比较少

    3.1less命令

    常用参数:

    -N##显示行号 -S##单行显示 zless##查看压缩文件

    常见用法:

    less [参数] 文件名

    less命令重要的补充用法1

    使用less命令时: 上下左右键 查看文本内容 Enter 键 向下移动一行 空格键 翻页 q 键 退出 注意:使用键盘上的快捷键,一定要在纯英文状态下使用,其它按键有时间再自行探索

    需要注意退出:只要使用less命令,按q键

    Linux文本操作常用命令及用法


    使用less命令,按q键退出

    less命令重要的补充用法2

    less Data/example.gtf ##显示部分的内容,如新的打开一个窗口,这个时候不要乱按键盘,每个键有作用,举几个简单的:按空格键就实现翻页,按键盘上的上下键向上和向下翻页,左右键不能用。 点击键盘里的/键,为搜索功能,只要输入想搜索的内容,如gene,点击n键为向前翻页,shift N为向后翻页,大写N为往前翻,小写n为往后翻页,按q建退出

    参数用法:

    ####-N:显示行号 less Data/example.gtf##先看看没有加参数,后面对比加参数的,记得一定按q退出 less -N Data/example.gtf##-N是显示行号,每行前面以数字显示 ####-S:单行显示 less -S Data/example.gtf##很规整的排列,键盘上的上下翻页,左右翻动键能用,空格也可以翻页,同样可以用/键搜索 ####-N和-S可以一起用 less -NS Data/example.gtf##显示行号和排列规整

    less命令不加参数查看文件:

    Linux文本操作常用命令及用法


    less命令没加参数查看文件

    less命令加-N参数查看文件:显示行号

    Linux文本操作常用命令及用法


    less命令加-N参数查看文件

    less命令加-S参数查看文件:单行显示,非常规整

    Linux文本操作常用命令及用法


    less命令加-S参数查看文件

    对比:less和cat命令显示文本行号的用法:less -N,cat -n

    less -N Data/example.fq zless -N Data/reads.1.fq.gz cat -n Data/example.fq ##注意参数大小写

    3.2more命令

    参数:没有

    用法more 文件名

    **more **逐页查看,按空格翻页,按回车换行,more命令一般很少用,熟练掌握less命令就好

    more Data/example.gtf ##查看时会显示进度条,按空格键翻页4.zless和zcat命令

    查看压缩文件

    ls Data ##有两个红色字体的压缩纯文本文件 zless Data/reads.1.fq.gz ##zless解压纯文本文件,和less功能一样,可以使用键盘键。服务器生设置less也可以查看压缩文本 zless -N Data/reads.1.fq.gz less -N Data/reads.1.fq.gz#服务器生设置less也可以查看压缩文本 cat Data/reads.1.fq.gz##出现乱码,cat不能直接查看压缩文本 zcat Data/reads.1.fq.gz##zcat命令会刷屏,很难查找之前的内容(命令) zcat Data/reads.1.fq.gz | less ##用管道符传给less5.wc命令:统计文本

    常见参数:

    -l ##统计行数 -w ##统计字符串数 -c ##统计字节数

    常见用法

    cat -n readme.txt cat readme.txt | wc ## wc -l readme.txt

    Linux文本操作常用命令及用法


    wc命令的用法

    cat -n readme.txt wc -l readme.txt cat readme.txt | wc -l wc -w readme.txt wc -c readme.txt #####探讨wc和cat的用法: cat >file hello world ^C ##换行后按住control C,就是退出 wc file #1 2 13 file##1代表1行,2代表2个单词,13代表13个字母,空格也算一个字符,\n换行符也算一个字符,只是看不见

    wc统计字符是也把换行符统计进去,但是别的命令不一定会把换行符算进去,。

    6.cut:文本切割

    常见参数:

    -d##指定分隔符,默认\t; #-d切出来的第一部分就是第一列,后面一部分就是第二例 -f##输出哪几列(字段fields)

    常见用法:

    less -S Data/example.gtf ###一个表格 less -S Data/example.gtf | cut -f 1##把第一例切出来,其实就是提出来看,并没有改文件里面的内容 ##只是查看那一列的前几行,怎么操作?? less -S Data/example.gtf | cut -f 1,3-5,7###切第1列,3到5列,第7列,保留 less -S Data/example.gtf | cut -f 1,3-5 less -S Data/example.gtf | cut -d 'h' -f 1 ##chr,分割符就是c,h,r

    Linux文本操作常用命令及用法


    cut命令常见用法

    切记:用less命令,按q退出

    cat readme.txt # Welcome to Biotrainee()! # This is your personal account in our Cloud. # Have a fun with it. # Please feel free to contact with me(email to jmzeng1314@163.com) # () cat readme.txt |cut -d "h" -f 1 # Welcome to Biotrainee()! ##没有"h"就不切 # T # Have a fun wit ##识别大小写,大写的H不切 # Please feel free to contact wit # ( cat readme.txt |cut -d "h" -f 1,2##保留第1和第2列 # Welcome to Biotrainee()! # This is your personal account in our Cloud. ##This里的h保留 # Have a fun with it. # Please feel free to contact with me(email to jmzeng1314@163.com) # ( cat readme.txt |cut -d "h" -f 2 # Welcome to Biotrainee()! # is is your personal account in our Cloud. # it. # me(email to jmzeng1314@163.com) # ttp://www.biotrainee.com/t ####注意观察cat readme.txt |cut -d "h" -f 1和cat readme.txt |cut -d "h" -f 2切Have a fun with it 的结果

    cut命令是按关键词来切的

    Linux文本操作常用命令及用法


    cut命令用法的示例

    7.sort 命令:排序

    常见参数:

    -n##按照数值从小到大进行排序 -V##字符串中含有数值时,按照数值从小到大排序 -r##逆向排序 -k##指定区域 -t##指定分隔符

    常见用法:

    less -S Data/example.gtf |sort -k 3 | less -S ###-k 3,指定第3列来排,##后面加和不加less -S的区别,加上less -S更好。为字典排序,去查sort,字典排序 less -S Data/example.gtf | sort -k 4 | less -S ##排之前1737是在前面的,排序之后100816在前,主要是用了字典排序,从排列比较对象最左边的数字意义一个个对比

    排列前:

    Linux文本操作常用命令及用法


    sort命令排列前

    排列后:

    Linux文本操作常用命令及用法


    sort命令排列后

    Linux文本操作常用命令及用法


    sort命令字典法排序比较大小

    解释:1和0比,1大;7和0比,7大…在sort字典排序里,100816比1737小,所以100816排在前面。

    命令行查看一个表格结构时,因为制表符对齐的原因,出现一个错位的现象。还有字典排序可能和我们平时的认知不一样,所以加上-n参数让数值有数学意义上的大小来排序

    less -S Data/example.gtf | sort -n -k 4 | less -S

    Linux文本操作常用命令及用法


    制表符错位现象

    8.uniq命令:去除重复行

    常见参数:

    -c##统计每个字符串连续出现的行数

    uniq命令去重,只有两行出现重复,而且是相邻的两行,如果不相邻,即使出现两行一模一样,不会去重。

    uniq命令通常和sort命令搭配使用

    less -S Data/example.gtf | cut -f 1-5 ##只取前5列出来 less -S Data/example.gtf | cut -f 1-5 | wc -l##统计前5列有多少行 #237 less -S Data/example.gtf | cut -f 1-5 | uniq less -S Data/example.gtf | cut -f 1-5 | uniq |wc # 220 1100 6698 less -S Data/example.gtf | cut -f 1-5 | uniq |wc -l ##220 去重剩下220行,加不加-l反馈的结果是不一样 ###怎么知道去重的是哪些行?加-c参数 less -S Data/example.gtf | cut -f 1-5 | uniq -c #展示每一行的重复次数,只是展示相邻的 less -S Data/example.gtf | cut -f 3 | sort | uniq -c #展示每一行的重复次数,展示所有的 less -S Data/example.gtf | cut -f 1-5 |sort | uniq |wc #排序之后去重,统计 #220 1100 6698

    Linux文本操作常用命令及用法


    统计出现的次数

    换其它文件试试

    less -S Data/example.gtf | cut -f 3 #取这个文件的第3列 less -S Data/example.gtf | cut -f 3 | uniq #全部显示 less -S Data/example.gtf | cut -f 3 | sort | uniq # CDS # UTR # exon # gene # start_codon # stop_codon # transcript less -S Data/example.gtf | cut -f 3 | sort | uniq -c # 29 CDS # 27 UTR # 111 exon # 20 gene # 7 start_codon # 9 stop_codon # 34 transcript #统计每行出现的次数

    总之,uniq命令使用时经常和sort一起

    9.paste命令:文本合并

    常见参数:

    -d##指定分隔符(默认是制表符:\t) -s##按行合并(文本文件,类似R语言里cbind函数)

    常见用法1:

    pastefile1 file2

    cat >file 1 2 3 4 5 6 ^C cat file # 1 # 2 # 3 # 4 # 5 # 6 paste file readme.txt # 1 Welcome to Biotrainee()! # 2 This is your personal account in our Cloud. # 3 Have a fun with it. # 4 Please feel free to contact with me(email to jmzeng1314@163.com) # 5 () # 6 paste -d "." file readme.txt # 1.Welcome to Biotrainee()! # 2.This is your personal account in our Cloud. # 3.Have a fun with it. # 4.Please feel free to contact with me(email to jmzeng1314@163.com) # 5.() # 6.

    -s:按行合并演示

    #按行合并 paste -s file readme.txt # 1 2 3 4 5 6 # Welcome to Biotrainee()! This is your personal account in our Cloud. Have a fun with it. Please feel free to contact with me(email to jmzeng1314@163.com) () cat >file2 a b c d f e ^C cat file cat file2 paste -s file file2 # 1 2 3 4 5 6 # a b c d f e

    常见用法2:paste- -

    ##paste 传递给两个 - - seq 20 seq 20 |paste - - # 1 2 # 3 4 # 5 6 # 7 8 # 9 10 # 11 12 # 13 14 # 15 16 # 17 18 # 19 20 #paste - - 把原来文件的每两行合并新文件的每两列,即两行换成两列 ###三个- - - seq 20 |paste - - - # 1 2 3 # 4 5 6 # 7 8 9 # 10 11 12 # 13 14 15 # 16 17 18 # 19 20 #每三行合并成三列 ###可以一直在加- (抬杠)10.tr命令:字符替换

    常见参数:

    -d##删除指定字符 -s##缩减连续重复字符(不常用就不讲了,自己查资料,探索)

    常见用法:

    cat readme.txt | tr "a" "A"#把小写”a“替换成大写的”A“ # Welcome to BiotrAinee()! # This is your personAl Account in our Cloud. # HAve A fun with it. # PleAse feel free to contAct with me(emAil to jmzeng1314@163.com) # () cat readme.txt | tr "abc" "ABC" ###abc逐个替换,就是把小写的a替换完再到吧,后到c。一对一转换 ####删除单独的一个字符 ##-d删除指定的字符,如删除小写a, cat readme.txt | tr -d "a" # Welcome to Biotrinee()! # This is your personl ccount in our Cloud. # Hve fun with it. # Plese feel free to contct with me(emil to jmzeng1314@163.com) # () ####也可以一次删除多个不想要的字母 cat readme.txt | tr -d "abc" # Welome to Biotrinee()! # This is your personl ount in our Cloud. # Hve fun with it. # Plese feel free to ontt with me(emil to jmzeng1314@163.om) # ()补充知识:

    要养成一个好习惯,原始数据不要轻易修改,修改的东西另外保存,文本保存用> (重定向)或是 >>(追加)

    ######> 重定向另存文件 ###修改的文本的保存,用重定向符号>,原来的文件还在, cat readme.txt | tr "a" "A" >file.txt cat file.txt cat readme.txt ###用重定向符号>后,命名要和原来的名字不一样,不然会被覆盖掉 ######>> 追加另存文件 ###两个重定向符号>>,表示追加,就是把修改的文件放到追加文件的后面 cat file##先查看file # 1 # 2 # 3 # 4 # 5 # 6 cat readme.txt | tr "a" "A" >>file cat file # 1 # 2 # 3 # 4 # 5 # 6 # Welcome to BiotrAinee()! # This is your personAl Account in our Cloud. # HAve A fun with it. # PleAse feel free to contAct with me(emAil to jmzeng1314@163.com) # ()来自生信技能树小郭老师的总结:

    Linux常用文本命令的小结

    Linux文本操作常用命令及用法


    生信技能树小郭老师课件图

    其它:

    今天讲的10个Linux文本操作命令行,前5个命令是最经常用来查看文本,其中less是最常用的,只因它功能很强大,一旦用上less命令,键盘上很多按键都起作用,不要随便乱按,后续自行搜索用法。 今天的内容很多,不要求立马记住。如果要行使功能,马上想到对应命令,然后通过管道符|把多个命令串起来。(命令与命令之间是通过管道符|传递的) wc把换行符统计在内,换行符也占用一个字符的空间作业:

    1.less查看example.gtf,然后管道符传递给wc

    less -S Data/example.gtf | wc #237 6944 77781

    2.截取example.gtf9列的内容

    less -S Data/example.gtf | cut -f 9 | less -S ##以制表符分割,\t

    3.在第2步的基础上截取分号分割的第1列

    less -S Data/example.gtf | cut -f 9 | cut -d ";" -f 1 # gene_id "ENSG00000184731" # gene_id "ENSG00000184731" # gene_id "ENSG00000184731"

    4.在第3步的基础上排序、去重复并统计

    ##less -S Data/example.gtf | sort | cut -d ";" -f 9 | wc#自己做的 less -S Data/example.gtf | cut -f 9 | cut -d ";" -f 1| sort |uniq -c##答案 ## 237 474 2133

    5.在第4步的基础上,将空格替换成制表符

    ##自己做的 less -S Data/example.gtf | sort | cut -d "\t" -f 9 | wc ##答案 less -S Data/example.gtf | cut -f 9 | cut -d ";" -f 1| sort |uniq -c|tr ' ' '\t' ##cta -A把制表符可视化出来 less -S Data/example.gtf | cut -f 9 | cut -d ";" -f 1| sort |uniq -c|tr ' ' '\t' |cat -A ^I^I^I^I^I^I8^Igene_id^I"ENSG00000177693"$ ^I^I^I^I^I15^Igene_id^I"ENSG00000184731"$ ^I^I^I^I^I^I3^Igene_id^I"ENSG00000221311"$

    补充小知识

    清屏:control L

    查看历史(输入过的)命令:history

    注意,多个命令之间是用管道符|传递的

    链接: https://www.jianshu.com/p/33a83c60960d

    推荐内容