Linux常用命令

作者: Z_bioinfo | 来源:发表于2022-03-08 15:44 被阅读0次

    1.grep:找出文件中含有关键字的行

    在Homo_sapiens.GRCh37.87.gtf 这个文件中找出含有CRISPLD2的行
    [zhangyihui@localhost ensemble-annot]$grep CRISPLD2 Homo_sapiens.GRCh37.87.gtf 
    16  ensembl_havana  gene    84853590    84954374    .   +   .   gene_id "ENSG00000103196"; gene_version "7"; gene_name "CRISPLD2"; gene_source "ensembl_havana"; gene_biotype "protein_coding";
    

    2.cat:读取,显示或拼接文件内容

    读取单个文件
    cat one.txt
    11111
    读取多个文件
    cat one.txt two.txt
    11111
    22222
    从标准输入中读取
    OUT-PUT_FROM_SOME  | cat
    例如
    echo 'aaaa' | cat - one.txt
    aaaa
    11111
    ==========================
    删除多余空白行,使用-s参数
    cat -s file
    ==========================
    将制表符显示为^| :-T参数,用于区分制表符和空格
    cat -T file
    ================================
    显示行号: -n参数
    cat -n file
    例如
    cat lines.txt
    11111
    22222
    33333
    cat -n lines.txt
         1  11111
         2  22222
         3  33333
    

    3.head:查看文件前多少行,默认为10行

    head Homo_sapiens.GRCh37.87.gtf 
    cat Homo_sapiens.GRCh37.87.gtf 
    #!genome-build GRCh37.p13
    #!genome-version GRCh37
    #!genome-date 2009-02
    #!genome-build-accession NCBI:GCA_000001405.14
    #!genebuild-last-updated 2013-09
    1   ensembl_havana  gene    11869   14412   .   +   .   gene_id "ENSG00000223972"; gene_version "4"; gene_name "DDX11L1"; gene_source "ensembl_havana"; gene_biotype "pseudogene";
    1   havana  transcript  11869   14409   .   +   .   gene_id "ENSG00000223972"; gene_version "4"; transcript_id "ENST00000456328"; transcript_version "2"; gene_name "DDX11L1"; gene_source "ensembl_havana"; gene_biotype "pseudogene"; transcript_name "DDX11L1-002"; transcript_source "havana"; transcript_biotype "processed_transcript"; havana_transcript "OTTHUMT00000362751"; havana_transcript_version "1"; tag "basic";
    head -n 100 Homo_sapiens.GRCh37.87.gtf 查看文件前100行
    

    4.less:使文件内容可以翻页显示,按q退出观看模式

    cat Homo_sapiens.GRCh37.87.gtf | less -S
    #!genome-build GRCh37.p13
    #!genome-version GRCh37
    #!genome-date 2009-02
    #!genome-build-accession NCBI:GCA_000001405.14
    #!genebuild-last-updated 2013-09
    1       ensembl_havana  gene    11869   14412   .       +       .       gene_id "ENSG00000223972"; ge
    1       havana  transcript      11869   14409   .       +       .       gene_id "ENSG00000223972"; ge
    1       havana  exon    11869   12227   .       +       .       gene_id "ENSG00000223972"; gene_versi
    1       havana  exon    12613   12721   .       +       .       gene_id "ENSG00000223972"; gene_versi
    1       havana  exon    13221   14409   .       +       .       gene_id "ENSG00000223972"; gene_versi
    (END)
    
    

    5.sed :文本替换

    模式:sed 's/pattern/replace_string/' file >new.file
    将a替换为A
    echo aaaaa | sed 's/a/A/'
    Aaaaa  默认将每一行中第一处符合模式的内容替换掉
    后缀/g参数:替换每一处匹配
    echo aaaaa | sed 's/a/A/g'
    AAAAA
    /Ng:从第N处开始匹配替换,当N=2时,从第二处开始匹配替换
    echo aaaaa | sed 's/a/A/2g'
    aAAAA
    =================================
    移除空白行,^$表示空白行
    sed '/^$/d' file 
    /pattern/d会移除匹配样式的行
    ================================
    已匹配字符串标记
    可以用&标记匹配样式的字符串,就能够在替换字符串时使用已匹配的内容
    例如
    echo this is an example | sed 's/\w\ + [&]/g'
    [this] [is] [an] [examole]
    \w\ +表示匹配每一个单词,然后用[&]替换
    =================================
    字串匹配标记
    将digit 7替换为7,\1表示匹配到的第一个字符串,\2表示匹配到的第二个字符串
    echo this is digit 7 in a number | sed 's/digit ([0-9]\)/\1/'
     this is 7 in a number
    

    6.vi:创建文件并写入内容

    vi test.fa #创建一个后缀.fa的文件,会出现下面这种情况
    
    ~                                                                                                   
    ~                                                                                                    
    ~     
    "a" [新文件]                                                                       0,0-1        全部          
    

    点击键盘上的“i”键,进入编辑状态 ,如果看到底部出现“插入”两字,表示成功进入编辑状态,此时就可以在文件中输入你想要输入的内容了

    vi test.fa    
    ~                                                                                                    
    ~       
    -- 插入 --                                                                         0,1          全部
    

    输入想插入的内容,输入完成后点击键盘上的“esc”键,退出编辑

    vi a fa
    >chr1
    AAAAAAAACCCCCCCCCCCCCGCTACTGGGGGGGGGGGGGGGGGG
    ~                                                                                                    
    ~                                                                                                    
    -- 插入 --                                                                         2,46         全部
    

    输入:wq,点击回车,退出并保存

    vi a fa
    >chr1
    AAAAAAAACCCCCCCCCCCCCGCTACTGGGGGGGGGGGGGGGGGG
    ~                                                                                                    
    ~                                                                                                    
    :wq
    

    查看刚才是否些文件成功

    cat test.fa
    >chr1
    AAAAAAAACCCCCCCCCCCCCGCTACTGGGGGGGGGGGGGGGGGG
    

    7.%操作符,#操作符:根据拓展名切分文件名,“名称.扩展名”
    有一些脚本是依据文件名进行各种处理的。我们可能会需要在保留扩展名的同时修改文件名,转换文件格式或提取部分文件名。

    ${VAR%.*}从$VAR中删除位于%右侧的通配符(.*)所匹配的字符串,通配符从右向左进行匹配,%属于非贪婪操作
    例如
    VAR = hack.fun.book.txt
    echo ${VAR%.*}
    输出结果为
    hack.fun.book
    操作符%%:贪婪操作从右向左匹配符合条件的最长字符串
    echo ${VAR%%.*}
    hack
    #操作符,与%类似,不过求知的方向从左向右
    ${VAR#*.}删除位于#右侧的通配符所匹配的字符串。通配符从左向右进行匹配
    和%%类似,#也有一个相对应的贪婪操作符
    echo ${VAR#*.}
    hack
    echo ${VAR##*.}
    txt
    

    相关文章

      网友评论

        本文标题:Linux常用命令

        本文链接:https://www.haomeiwen.com/subject/qeparrtx.html