[linux] 常用命令及参数

作者: 生物信息与育种 | 来源:发表于2019-08-12 22:17 被阅读0次

    sort

    1 sort是把结果输出到标准输出,因此需要输出重定向将结果写入文件
    2 sort seq.txt > file.txt
    3 sort -u seq.txt   输出去重重复后的行
    4 sort -r number.txt 逆向排序
    5 sort -r number.txt -o file.txt -o具有输出重定向的作用
    6 sort -n number.txt 将数字按照大小排序,而不是按照ASCII码排序
    7 sort -n -k 3 -t : seq.txt   -t:指定分隔符;-k:指定分隔符分割的字段
    8 sort a.txt b.txt | uniq -d 取交集
    9 sort a.txt b.txt | uniq 取并集
    10 sort a.txt b.txt b.txt | uniq -u 取差集(a-b)
    11 sort b.txt a.txt a.txt | uniq -u 取差集(b-a)
    

    grep

    1 \w 代表字母数字下划线
    2 \W 代表非字符
    3 \b 单词分隔符   '\bX\b'
    4 '[A-Z][a-z]' 一个大写字母加一个小写字母
    5 'm..c'
    6 '[0-9][0-9]' 两个数字
    7 'se\+' +表示重复多次时,要加'\'
    8 'se\?' 同上
    9 '\(se\)*' 括号也需要加'\'
    10 '[0-9]\{2,3\}' 重复2-3次,大括号要加'\'
    11 +  ? * 表示不同程度的重复
    

    sed

    1 sed是行处理工具,每次处理一行的内容
    2 通过正则选定文本——>sed进行处理
    3 sed -n 'p' grep 打印输出
    4 sed -n '10p' grep 打印第10行
    5 sed -n '5,10p' grep   打印第5-10行
    6 sed -n '5,10!p' grep  不打印第5-10行
    7 sed -n '1~2p' grep first~step
    8 sed '1,5a=========' grep 在1-5行之前增加===
    9 sed '1,5i=========' grep 在1-5行之前插入===
    10 sed '10c heldfada' grep 第10行替换成后面的文字 5,10c  5-10行整体替换
    11 sed '40d' grep 删除第40行
    12 sed '$a print hello \nprint yes' sed  在文章的结尾增加两行 $a \ 区分
    13 sed '/^$/d' grep 删除空行
    14 sed 's/false/true/' grep  替换 /g 全局替换
    15 sed -n '{n;p}' grep 输出偶数行 n读入一行,p输出一行
    16 sed -n '{p;n}' grep 输出奇数行
    17 {} 可以输入多个命令;用分号隔开
    18 s/W/W123/ 也可以写成s/W/&123/
    19 \u 首字母大写 \l 首字母小写 \U \L
    20
    21 sed 's/(^[a-z]\+.*$)/\1/' grep 替换中使用\1捕获
    22 sed 's/w1(w2)w3/\1/' grep 替换命令
    23
    24 sed '1r 123.txt' abc.txt  读入123.txt文件,输入到abc.txt文件的第一行后
    25 sed 'w abc.txt' 123.txt 把123.txt文件写入abc.txt覆盖
    

    awk

    2 可以编程,处理灵活,功能强大,适合处理复杂文本
    3 awk一次处理一行内容,可以对每行进行切片处理
    4 awk '{print $1}' 输出收个单词  也可以对print的内容进行书写如print $1"\t"$2
    5 awk -F ':' '{print $3}' /etc/passwd F:分隔符
    6 awk -F ':' '{print NR NF}' /etc/passwd NR:行号; NF:列号
    7 awk -F ':' '$1~/^m.*/{print $1}' /etc/passwd 第一个字段匹配正则表达式  !~ 不匹配
    8 awk -F ':' '$3>100{print $1,$3}' /etc/passwd 也可以用逻辑判断来匹配
    9 awk -F ':' 'BEGIN{print"Line name num"}{print NR,NF,$1}END{print"FILENAME"}' /etc/passwd  > a.txt
    10 awk -F ':' 'BEGIN{count=0}$1!~/^$/{count++}END{print"count="count}' /etc/passwd
    11 $0 代表整行
    

    cut

    1 cut处理文件的每一行,并输出至标准输出
    2 -b:以字节为单位切割;-c:以字符为单位切割(切割中文时有区别);-d:指定分隔符,默认为\t;-n:指定不把一个中文字符分割;-f:域
    3 cut -b 3-8 切割第3-8字节
    4 cat /etc/passwd|head -n 5|cut -d : -f 1
    5 cut -d '' -f 1 只能处理一个空格,若有多个空格则不能处理
    

    paste

    1 paste是将多个行数相同的文件按行合并
    2 paste aa bb 将aa和bb按行合并
    3 paste -d ':' aa bb 指定分隔符;默认分隔符为\t
    4 ls |paste -d ' ' - - - - 指定每行的元素有4个
    5 paste -s a.txt -s 将一个文件的多行数据一行显示
    

    join

    依照两个文件里共有的某一列,将相应的行拼接成一行
    1 join a.txt b.txt 两个文件必须依照相同的规则进行排序
    2 join -a1 a.txt b.txt 显示第一个文件的不匹配行;-a2显示第二个文件的不匹配行
    3 join -1 2 -2 2 a.txt b.txt 以第一个文件第2列和第2个文件第2列作为匹配字段
    4 join -o 1.2,2.2 a.txt b.txt 部分连接,选择第一个文件和第二个文件的第2部分进行连接
    

    split

    split a.fasta 默认按每个文件1000行进行分割
    split -n a.fasta 按指定n行对文件进行分割,n是具体数字
    

    相关文章

      网友评论

        本文标题:[linux] 常用命令及参数

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