【linux】一些我经常忘记但是很有用的Linux技巧,持续更新

1.vi 多行注释与取消:

注释步骤:

-》“Esc”键->-》"Ctrl + v" -》-》 I -》-》

注释取消:

esc -》 Ctrl + v -》光标移动选定要取消注释的行 -》 按下“x”或者“d”

 

2.shell 变量嵌套

HG001=/ftp-trace.ncbi.nih.gov/giab/ftp/release/NA12878_HG001/latest/GRCh38/HG001_GRCh38_GIAB_highconf_CG-IllFB-IllGATKHC-Ion-10X-SOLID_CHROM1-X_v.3.3.2_highconf_PGandRTGphasetransfer.reheader.vcf.gz
HG002=/ftp-trace.ncbi.nih.gov/giab/ftp/release/AshkenazimTrio/HG002_NA24385_son/latest/GRCh38/HG002_GRCh38_GIAB_highconf_CG-Illfb-IllsentieonHC-Ion-10XsentieonHC-SOLIDgatkHC_CHROM1-22_v.3.3.2_highconf_triophased.reheader.vcf.gz
HG005=/ftp-trace.ncbi.nih.gov/giab/ftp/release/ChineseTrio/HG005_NA24631_son/latest/GRCh38/HG005_GRCh38_GIAB_highconf_CG-Illfb-IllsentieonHC-Ion-10XsentieonHC-SOLIDgatkHC_CHROM1-22_v.3.3.2_highconf.reheader.vcf.gz
...

想要把分析脚本批量生成,直接$${i} 是不行的,会报bad substitution的错误,可用eval echo '$'"${i}"  ,如下:

for i in  HG001 HG002 HG005 ; do
    b=`eval echo '$'"${i}" `
    echo "time $gatk GenotypeConcordance --CALL_VCF $vcf --TRUTH_VCF $b --CALL_SAMPLE $i --TRUTH_SAMPLE $i --IGNORE_FILTER_STATUS true --OUTPUT $name.$i.GenotypeCocordance && echo \" $i GenotypeCocordance done\" ">>  $shell
done

3.行列置换

awk '{for(i=1;i<=NF;i=i+1){a[NR,i]=$i}}END{for(j=1;j<=NF;j++){str=a[1,j];for(i=2;i<=NR;i++){str=str " " a[i,j]}print str}}' test.txt

4.统计一列的和

awk '{sum += $1};END {print sum}'

5.插入


在首行前插入一行
# sed '1i\#!/bin/sh' aa.txt
在尾行前插入一行
# sed '$I\wait' aa.txt  

在尾行后插入一样
# sed '$a\AAA' aa.txt  
在首行后插入一行
# sed '1a\AAA' aa.txt  

 

5.awk 传入变量

awk -v nm="sample_id" '$1==nm' file | less

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值