日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 运维知识 > linux >内容正文

linux

linux下编辑aacc.sh脚本命令,Shell命令实战详解

發(fā)布時(shí)間:2024/9/19 linux 20 豆豆
生活随笔 收集整理的這篇文章主要介紹了 linux下编辑aacc.sh脚本命令,Shell命令实战详解 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

1、按照指定的某段路徑,進(jìn)行數(shù)據(jù)拷貝。

=>head Assembly.txt/ifs1/ST_ENV/USER/liyiyuan/liushanlin/1KITE_1_2/110817_I809_FCD05CDACXX_L3_INSbusTBARABPEI-119/e3/gap/e3.scafseq_200/ifs1/ST_ENV/USER/liyiyuan/liushanlin/1KITE_1_2/110817_I809_FCD05CDACXX_L3_INSbusTBCRABPEI-135/e3/gap/e3.scafseq_200/ifs1/ST_ENV/USER/liyiyuan/liushanlin/1KITE_1_2/110817_I809_FCD05CDACXX_L3_INSbusTBDRAAPEI-79/e3/gap/e3.scafseq_200/ifs1/ST_ENV/USER/liyiyuan/liushanlin/1KITE_1_2/110817_I809_FCD05CDACXX_L3_INSbusTBFRABPEI-126/e3/gap/e3.scafseq_200/ifs1/ST_ENV/USER/liyiyuan/liushanlin/1KITE_1_2/110817_I809_FCD05CDACXX_L3_INSbusTBGRABPEI-127/e3/gap/e3.scafseq_200/ifs1/ST_ENV/USER/liyiyuan/liushanlin/1KITE_1_2/110817_I809_FCD05CDACXX_L3_INSbusTBHRABPEI-138/e3/gap/e3.scafseq_200/ifs1/ST_ENV/USER/liyiyuan/liushanlin/1KITE_1_2/110817_I809_FCD05CDACXX_L3_INSbusTBIRAAPEI-84/e3/gap/e3.scafseq_200/ifs1/ST_ENV/USER/liyiyuan/liushanlin/1KITE_1_2/110817_I809_FCD05CDACXX_L3_INSbusTBJRAAPEI-85/e3/gap/e3.scafseq_200/ifs1/ST_ENV/USER/liyiyuan/liushanlin/1KITE_1_2/110817_I809_FCD05CDACXX_L3_INSbusTBKRAAPEI-76/e3/gap/e3.scafseq_200/ifs1/ST_ENV/USER/liyiyuan/liushanlin/1KITE_1_2/110817_I809_FCD05CDACXX_L3_INSbusTBLRAAPEI-77/e3/gap/e3.scafseq_200

#在當(dāng)前目錄把liushanlin/下的數(shù)據(jù)按照原相對(duì)路徑進(jìn)行同步拷貝

=> cat Assembly.txt|while read i;do a=`echo $i|awk -F 'liushanlin/' '{print $2}'`;b=`echo $a|awk -F '/[^/]*$' '{print $1}'`;mkdir -p $b;rsync -avzP $i ./$b;echo -e "Finished:$i\t$b" >>rsync.log;done

2、解析路徑獲取文件名和目錄名。

獲取文件名

#awk解法:用“/”做分隔符,然后打印出最后的那一部分。

resFile=`echo /tmp/csdn/zhengyi/test/adb.log | awk -F "/" '{print $NF}'`

#官方解法(basename):Bash Shell本身提供了basename命令,可以直接獲取路徑名最后的文件名。

resFile=`basename /tmp/csdn/zhengyi/test/adb.log`

獲取目錄名

#awk解法:可以靈活的使用分隔符,混合正則表達(dá)式。

dirPath=`echo /tmp/csdn/zhengyi/test/adb.log | awk -F '/[^/]*$' '{print $1}'`?????? #awk+for循環(huán)的方法

echo /tmp/csdn/zhengyi/test/adb.log | awk 'BEGIN{res=""; FS="/";}{ for(i=2;i<=NF-1;i++) res=(res"/"$i);} END{print res}'

#官方解法(basename):Bash Shell本身提供了dirname命令,特別方便,可以直接獲取路徑對(duì)應(yīng)的目錄名。

dirPath=`dirname /tmp/csdn/zhengyi/test/adb.log`

3、Soap文件中求出每個(gè)染色體的總測序長度(即第6列的加和)。

=>head test.soap

SIMU_0001_00000001/2 AAATATGTGGATATAAACACATTCCTAAATAACCG hhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh 1 a 35 - chr1 55537 1 A->11T40 35M 11A23

SIMU_0001_00000002/2 CCGGGGCCCAGCGCAGGGGCTGATGAGAAGGCACT hhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh 1 a 35 - chr2 46589 0 35M 35SIMU_0001_00000003/2 TTCCCCTTTGATCTGATGTCCACCTGGAAACCGTG hhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh 1 a 35 - chr2 37337 0 35M 35SIMU_0001_00000004/2 TTTATATGGTGTTAGCCTTTCTTCCAAATTTTAAG hhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh 1 a 35 - chr3 27365 1 A->14G40 35M 14A20

SIMU_0001_00000005/2 ACCCATGGCAGACCCCCTTATCTTAACTCAAGTGT hhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh 1 a 35 - chr1 11736 1 A->2C40 35M 2A32

SIMU_0001_00000006/2 GCTTACACTGGAATTAACAAGTTTTAGTATATTAT hhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh 1 a 35 - chr10 53007 0 35M 35SIMU_0001_00000009/2 TTTTCTTCTATGAAGTTTGGGAGAAAAGTCAAGAT hhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh 1 a 35 - chr1 91644 0 35M 35SIMU_0001_00000010/2 GGTCACCACAGAATATGATATAAATAAGATAAATA hhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh 1 a 35 - chr2 77211 0 35M 35SIMU_0001_00000011/2 TACTTTTGGATTATATGCTAAACAGTGTGACTATA hhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh 1 a 35 - chr1 60759 0 35M 35SIMU_0001_00000013/2 TTCCCTGGTAAGGGCTCATGCCTTGGCACTGAGGG hhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh 1 a 35 - chr12 90043 0 35M 35

#awk代碼實(shí)現(xiàn):

=> head test.soap |awk '{a[$8]+=$6}END{for (i in a) print i,"\t",a[i]}'chr1035chr1235chr1140chr2105chr335

4、Linux下用awk計(jì)算Fasta序列的長度

=> catcontig.fa>1cvg_0.0_tip_0

ATTTTGGCTTTGGAAGGGC>3cvg_0.0_tip_0

GAATAGTGATACAAATTATATAGTTTCAAGTATGTGACTTGAACATGAGATTAT>5cvg_0.0_tip_0

TAATCTAGGCTTGAAACTATATAATTTGTATCACTATTCTAAGGATTTTTTT

首先通過下面的命令將fasta序列轉(zhuǎn)換成一行顯示,命令如下:

=> awk '/^>/&&NR>1{print "";}{ printf "%s",/^>/ ? $0" ":$0 }'contig.fa

或者:=> awk '{ printf "%s",/^>/ ? $0" ":$0"\n" }' contig.fa

得到如下結(jié)果:

如果想直接顯示每條序列的長度,可以運(yùn)行如下命令:

=> awk '/^>/&&NR>1{print "";}{ printf "%s",/^>/ ? $0" ":$0 }' contig.fa |awk '{print $1"\t"length($3)}'

得到結(jié)果如下:

>1 19

>3 54

>5 52

總結(jié)

以上是生活随笔為你收集整理的linux下编辑aacc.sh脚本命令,Shell命令实战详解的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。