1. Sort排序:https://www.cnblogs.com/fulucky/p/8022718.html
参 数: -b 忽略每行前面开始出的空格字符。 -c 检查文件是否已经按照顺序排序。 -d 排序时,处理英文字母、数字及空格字符外,忽略其他的字符。 -f 排序时,将小写字母视为大写字母。 -i 排序时,除了040至176之间的ASCII字符外,忽略其他的字符。 -m 将几个排序好的文件进行合并。 -M 将前面3个字母依照月份的缩写进行排序。 -n 依照数值的大小排序。
-g -o<输出文件> 将排序后的结果存入指定的文件。 -r 以相反的顺序来排序。 -t<分隔字符> 指定排序时所用的栏位分隔字符。如sort -n -k 2 -t'-' +<起始栏位>-<结束栏位> 以指定的栏位来排序,范围由起始栏位到结束栏位的前一栏位。 --help 显示帮助。
-u 在输出行中去除重复行。 如:sort -n -k2 file.txt 或则sort -g -k2 file.txt(从小到大排序)(加-r从大到小排序)
2. 提取文件的第几列:https://www.jianshu.com/p/12b344e39e4a
awk '{print $2}' test1.txt $表示第几列; awk -F ":" '{print $2}' test2.txt -F表示指定列(字段)分隔符。
A B C awk '{print $1,$2}' filename 结果:A B。awk '{print $1 $2}' filename 结果:AB。 awk '{print $1 "-" $2}' filename 结果:A-B。
3. 快速删除linux下大文件头几行
sed -i '1,nd' filename 删除第一行到第n行
4. awk按列合并示例:https://blog.csdn.net/jiuniu110/article/details/79889586
将如下文本按第一列为主key,将相同的第二列值追加到同一行
cat input.log
ofB8Mt00DhYwMOpJvGm2dKDnZ3NM 3037
ofB8Mt00DhYwMOpJvGm2dKDnZ3NM 3080
ofB8Mt0UrL1Ux_PzudJiG0kH4uN4 1223
ofB8Mt0UrL1Ux_PzudJiG0kH4uN4 1248
执行命令:
cat input.log | awk '{a[$1]=a[$1]"|"$2}END{for( i in a){print i, a[i]"|"}}'
ofB8Mt00DhYwMOpJvGm2dKDnZ3NM |3037|3080|
ofB8Mt0UrL1Ux_PzudJiG0kH4uN4 |1223|1248|
5. Linux根据一个文件的列内容提取另一个文件的行 http://blog.sina.com.cn/s/blog_a7b297ed0102wlrl.html https://www.jianshu.com/p/7e4c1ba5ebe4 https://www.jianshu.com/p/a34f939bb6ef
awk 'NR==FNR{a[$3]=$0}NR!=FNR{print a[$1]}' AllChr.impute.vcf SNP.txt > signSNPs.vcf
注:$3是AllChr.impute.vcf文件第三列
6. ggplot2作图 KEGG http://www.360doc.com/content/17/0801/10/28491187_675773538.shtml
7. 从blast结果中取出每个query搜到的evalue最小的结果
awk '!a[$1]++{print}' sort.results > uniq.results blast的-outfmt 6格式默认最上面的比对到的evalue最小,用awk根据第一列去重,默认会保留最上面的一条记录