学习笔记:linux常用命令cut、sort、grep

1.cut
cut用于文件分割,将整个文件分割成不同的字段,可以对字段进行单独的操作,类似于excel中进行列操作。
-b, 按字节(bytes)定位;-c, 按字符(characters)定位;-f, 按域(fields)定位; -d ,设置间隔符,默认制表符(Tab)。
常用-d,-f。根据文件差异,有的分隔符是空格,有的是逗号、tab键等,-f指定要选择哪列或哪些列。

cat查看文件内容,此文件以逗号分割
Cat a.txt  
SRR776504,RNA-Seq,646,8308777,PRJNA192864,SAMN01978938,24124470
SRR776504,RNA-Seq,646,8308777,PRJNA192864,SAMN01978938,24124470
SRR776505,RNA-Seq,579,26432223,PRJNA192864,SAMN01978939,78862401
SRR776505,RNA-Seq,652,26432336,PRJNA192864,SAMN01978939,78862611
SRR776505,RNA-Seq,652,26432254,PRJNA192864,SAMN01978939,78862001
SRR776506,RNA-Seq,577,24314163,PRJNA192864,SAMN01978940,72169712
cut –d ‘,’ –f 1 a.txt  
逗号分割成7部分,取第一个字段
SRR776504
SRR776504
SRR776505
SRR776505
SRR776505
SRR776506
sed 's/,/\t/g' a.txt | cut -f 1-4 
 sed命令把,替换成Tab键,再取1至4字段;
SRR776504       RNA-Seq 646     8308777
SRR776504       RNA-Seq 646     8308777
SRR776505       RNA-Seq 579     26432223
SRR776505       RNA-Seq 652     26432336
SRR776505       RNA-Seq 652     26432254
SRR776506       RNA-Seq 577     24314163
 |为管道符,用于连续操作,表示把前一条命令的结果传输给后一条命令,即前面的输出作为后面的输入

2.sort
sort用于排序,默认按字符编码排序。-k指定按哪个字段排序;使用-n参数按数字大小排序;-u用于去重复,等同于sort | uniq;;-r,反向排序(默认升序);-t,指定分隔符
对前文取出的4个字段进行操作

先按第一列排序,再按第三列数字大小降序
sed 's/,/\t/g' a.txt | cut -f 1-4 | sort -k1,1 -k3,3nr 
SRR776504       RNA-Seq 646     8308777
SRR776504       RNA-Seq 646     8308777
SRR776505       RNA-Seq 652     26432254
SRR776505       RNA-Seq 652     26432336
SRR776505       RNA-Seq 579     26432223
SRR776506       RNA-Seq 577     24314163
其中前2行重复
sed 's/,/\t/g' a.txt | cut -f 1-4 | sort -k1,1 -k3,3nr | uniq -c
      2 SRR776504       RNA-Seq 646     8308777
      1 SRR776505       RNA-Seq 652     26432254
      1 SRR776505       RNA-Seq 652     26432336
      1 SRR776505       RNA-Seq 579     26432223
      1 SRR776506       RNA-Seq 577     24314163
#uniq用于去重,-c表示进行重复计数,计数结果显示在第一列;-d(duplication),获得重复的行。

再比如

cat <<END | uniq -c
> a
> a
> a
> b
> c
> d
> d
> END
       cat <<END | uniq -c
      3 a
      1 b
      1 c
      2 d
cat <<END后可键盘输入内容,前面会显示>,最后输入END结束,然后统计重复情况
cat <<END | uniq -d
> a
> a
> a
> b
> c
> d
> d
> END
a
d
#最后输出重复的内容a,d

3.grep
grep用于查找,-c,计数(count)

head t.gtf #查看文件的开头部分内容,-n指定查看前多少行;-v,反向查找
#!genome-version TAIR10
#!genome-date 2008-04
#!genome-build-accession GCA_000001735.1
#!genebuild-last-updated 2010-09
1       araport11       gene    10942648        10944727        .       -       .       gene_id "AT1G30814"; gene_source "araport11"; gene_biotype "protein_coding";
1       araport11       transcript      10942648        10944727        .       -       .       gene_id "AT1G30814"; transcript_id "AT1G30814.1"; gene_source "araport11"; gene_biotype "protein_coding"; transcript_source "araport11"; transcript_biotype "protein_coding";
1       araport11       exon    10944317        10944727        .       -       .       gene_id "AT1G30814"; transcript_id "AT1G30814.1"; exon_number "1"; gene_source "araport11"; gene_biotype "protein_coding"; transcript_source "araport11"; transcript_biotype "protein_coding"; exon_id "AT1G30814.1.exon1";
1       araport11       exon    10944078        10944229        .       -       .       gene_id "AT1G30814"; transcript_id "AT1G30814.1"; exon_number "2"; gene_source "araport11"; gene_biotype "protein_coding"; transcript_source "araport11"; transcript_biotype "protein_coding"; exon_id "AT1G30814.1.exon2";
1       araport11       CDS     10944078        10944225        .       -       0       gene_id "AT1G30814"; transcript_id "AT1G30814.1"; exon_number "2"; gene_source "araport11"; gene_biotype "protein_coding"; transcript_source "araport11"; transcript_biotype "protein_coding"; protein_id "AT1G30814.1";
grep "CDS" t.gtf
1       araport11       CDS     10944078        10944225        .       -       0       gene_id "AT1G30814"; transcript_id "AT1G30814.1"; exon_number "2"; gene_source "araport11"; gene_biotype "protein_coding"; transcript_source "araport11"; transcript_biotype "protein_coding"; protein_id "AT1G30814.1";
1       araport11       CDS     10943868        10943984        .       -       2       gene_id "AT1G30814"; transcript_id "AT1G30814.1"; exon_number "3"; gene_source "araport11"; gene_biotype "protein_coding"; transcript_source "araport11"; transcript_biotype "protein_coding"; protein_id "AT1G30814.1";
#"CDS"字样会标识出颜色
grep -c "CDS" t.gtf
2
grep -v "#" t.gtf | head -3 #不看注释行
1       araport11       gene    10942648        10944727        .       -       .       gene_id "AT1G30814"; gene_source "araport11"; gene_biotype "protein_coding";
1       araport11       transcript      10942648        10944727        .       -       .       gene_id "AT1G30814"; transcript_id "AT1G30814.1"; gene_source "araport11"; gene_biotype "protein_coding"; transcript_source "araport11"; transcript_biotype "protein_coding";
1       araport11       exon    10944317        10944727        .       -       .       gene_id "AT1G30814"; transcript_id "AT1G30814.1"; exon_number "1"; gene_source "araport11"; gene_biotype "protein_coding"; transcript_source "araport11"; transcript_biotype "protein_coding"; exon_id "AT1G30814.1.exon1";
cat b.txt
snpeff
snppppef
exper
database
data2
123
*123
grep "s" b.txt
snpeff
snppppef
database
grep "^s" b.txt #匹配s开头的字符
snpeff
snppppef
grep "f$" b.txt #匹配f结尾的字符
snpeff
snppppef
grep "snp*ef" b.txt #匹配p 0次或多次
snpeff
snppppef
grep -E "^s|d" b.txt #-E,匹配正则表达,|,或表达
snpeff
snppppef
database
data2
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 224,289评论 6 522
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 95,968评论 3 402
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 171,336评论 0 366
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 60,718评论 1 300
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 69,734评论 6 399
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 53,240评论 1 314
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 41,631评论 3 428
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 40,599评论 0 279
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 47,139评论 1 324
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 39,166评论 3 345
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 41,286评论 1 354
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 36,917评论 5 350
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 42,604评论 3 336
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 33,075评论 0 25
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 34,205评论 1 275
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 49,814评论 3 381
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 46,351评论 2 365

推荐阅读更多精彩内容