美文网首页生信猿
Linux命令记录

Linux命令记录

作者: oddxix | 来源:发表于2018-12-13 15:45 被阅读10次

    1.sed命令在文件行首行尾添加字符

    问题表述:要在文件的每一行行首或行尾添加字符

    实例:
    在每行的头添加字符,比如"HEAD",命令如下:

    sed 's/^/HEAD&/g' test.file
    

    在每行的行尾添加字符,比如“TAIL”,命令如下:

    sed 's/$/&TAIL/g' test.file
    

    可以把两条命令和在一起,在test.file的每一行的行头和行尾分别添加字符"HEAD"、“TAIL”,命令如下:

    sed '/./{s/^/HEAD&/;s/$/&TAIL/}' test.file
    
    • 注:

    1."^"代表行首,"$"代表行尾

    2.''s/$/&TAIL/g''中的字符g代表全局替换

    3.导出文件,在命令末尾加"> outfile_name"

    2.window和linux文件的回车换行

    问题表述:Unix系统里,每行结尾只有“<换行>”,即“\n”;Windows系统里面,每行结尾是“<换行><回 车>”,即“\n\r”。一个直接后果是,Unix系统下的文件在Windows里打开的话,所有文字会变成一行;而Windows里的文件在Unix下打开的话,在每行的结尾可能会多出一个^M符号。
    windows文件在Linux上打开时每行末尾都有^M符号,而这通常是看不出来的。可以用"cat -A test.file"命令查看。

    将windows文件转换为UNIX格式解决办法:

    1.命令:

    dos2unix filename
    

    2.去掉"\r" ,命令

    sed -i 's/\r//' filename
    #/r 可用^M 代替,^M的输入方式是 Ctrl + v ,然后Ctrl + M 
    #sed -i ‘s/^M//g' filename
    

    3#vi filename

    :1,$ s/^M//g
    #^M 输入方法: ctrl+V ,ctrl+M
    

    4.cat

    cat filename |tr -d ‘/r' > newfile
    #^M 可用 /r 代替
    

    3.gz、tar.gz、bz2文件的批量解压

    #gz
    ls *.gz | xargs -n1 gzip -d
    #tar.gz
    ls *.tar.gz | xargs -n1 tar xzvf
    #bz2,可解压当前目录下的所有bz2文件,maxdepth表示搜索深度,1代表只搜索当前目录
    find -maxdepth 1 -name “*.bz2″|xargs -i tar xvjf {}
    

    想保留压缩文件可以指定输出gzip -d filename.gz > filename

    4.sort排序

    问题表述:对vcf文件进行染色体排序时,发现chr10会排在chr2的前面,可以使用参数-V另外也想第二列在染色体上的位置也进行排序
    ,可以使用参数-k,使用命令如下:

    sort -V -k1,2 filename > filename2
    
    #sort参数
        -f:忽略大小写;
        -b:忽略每行前面的空白部分;
        -n:以数值型进行排序,默认使用字符串排序;
        -r:反向排序;
        -u:删除重复行。就是 uniq 命令;
        -t:指定分隔符,默认分隔符是制表符;
        -k [n,m]:按照指定的字段范围排序。从第 n 个字段开始,到第 m 个字(默认到行尾);
    

    持续更新中··········

    相关文章

      网友评论

        本文标题:Linux命令记录

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