sort
1 sort是把結(jié)果輸出到標(biāo)準(zhǔn)輸出,因此需要輸出重定向?qū)⒔Y(jié)果寫(xiě)入文件
2 sort seq.txt > file.txt
3 sort -u seq.txt 輸出去重重復(fù)后的行
4 sort -r number.txt 逆向排序
5 sort -r number.txt -o file.txt -o具有輸出重定向的作用
6 sort -n number.txt 將數(shù)字按照大小排序尖阔,而不是按照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 代表字母數(shù)字下劃線(xiàn)
2 \W 代表非字符
3 \b 單詞分隔符 '\bX\b'
4 '[A-Z][a-z]' 一個(gè)大寫(xiě)字母加一個(gè)小寫(xiě)字母
5 'm..c'
6 '[0-9][0-9]' 兩個(gè)數(shù)字
7 'se\+' +表示重復(fù)多次時(shí)贮缅,要加'\'
8 'se\?' 同上
9 '\(se\)*' 括號(hào)也需要加'\'
10 '[0-9]\{2,3\}' 重復(fù)2-3次,大括號(hào)要加'\'
11 + ? * 表示不同程度的重復(fù)
sed
1 sed是行處理工具介却,每次處理一行的內(nèi)容
2 通過(guò)正則選定文本——>sed進(jìn)行處理
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 在文章的結(jié)尾增加兩行 $a \ 區(qū)分
13 sed '/^$/d' grep 刪除空行
14 sed 's/false/true/' grep 替換 /g 全局替換
15 sed -n '{n;p}' grep 輸出偶數(shù)行 n讀入一行谴供,p輸出一行
16 sed -n '{p;n}' grep 輸出奇數(shù)行
17 {} 可以輸入多個(gè)命令;用分號(hào)隔開(kāi)
18 s/W/W123/ 也可以寫(xiě)成s/W/&123/
19 \u 首字母大寫(xiě) \l 首字母小寫(xiě) \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文件寫(xiě)入abc.txt覆蓋
awk
2 可以編程桂肌,處理靈活,功能強(qiáng)大永淌,適合處理復(fù)雜文本
3 awk一次處理一行內(nèi)容崎场,可以對(duì)每行進(jìn)行切片處理
4 awk '{print $1}' 輸出收個(gè)單詞 也可以對(duì)print的內(nèi)容進(jìn)行書(shū)寫(xiě)如print $1"\t"$2
5 awk -F ':' '{print $3}' /etc/passwd F:分隔符
6 awk -F ':' '{print NR NF}' /etc/passwd NR:行號(hào); NF:列號(hào)
7 awk -F ':' '$1~/^m.*/{print $1}' /etc/passwd 第一個(gè)字段匹配正則表達(dá)式 !~ 不匹配
8 awk -F ':' '$3>100{print $1,$3}' /etc/passwd 也可以用邏輯判斷來(lái)匹配
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處理文件的每一行,并輸出至標(biāo)準(zhǔn)輸出
2 -b:以字節(jié)為單位切割遂蛀;-c:以字符為單位切割(切割中文時(shí)有區(qū)別)谭跨;-d:指定分隔符,默認(rèn)為\t;-n:指定不把一個(gè)中文字符分割;-f:域
3 cut -b 3-8 切割第3-8字節(jié)
4 cat /etc/passwd|head -n 5|cut -d : -f 1
5 cut -d '' -f 1 只能處理一個(gè)空格李滴,若有多個(gè)空格則不能處理
paste
1 paste是將多個(gè)行數(shù)相同的文件按行合并
2 paste aa bb 將aa和bb按行合并
3 paste -d ':' aa bb 指定分隔符螃宙;默認(rèn)分隔符為\t
4 ls |paste -d ' ' - - - - 指定每行的元素有4個(gè)
5 paste -s a.txt -s 將一個(gè)文件的多行數(shù)據(jù)一行顯示
join
依照兩個(gè)文件里共有的某一列,將相應(yīng)的行拼接成一行
1 join a.txt b.txt 兩個(gè)文件必須依照相同的規(guī)則進(jìn)行排序
2 join -a1 a.txt b.txt 顯示第一個(gè)文件的不匹配行所坯;-a2顯示第二個(gè)文件的不匹配行
3 join -1 2 -2 2 a.txt b.txt 以第一個(gè)文件第2列和第2個(gè)文件第2列作為匹配字段
4 join -o 1.2,2.2 a.txt b.txt 部分連接谆扎,選擇第一個(gè)文件和第二個(gè)文件的第2部分進(jìn)行連接
split
split a.fasta 默認(rèn)按每個(gè)文件1000行進(jìn)行分割
split -n a.fasta 按指定n行對(duì)文件進(jìn)行分割,n是具體數(shù)字