我有文件,它看起來像這樣:如何用awk命令替換以同一行的第15列開始的行?
>gi|358482566|ref|NW_003766328.1| Gallus gallus breed Red Jungle fowl, inbred line UCD001 unplaced genomic scaffold, Gallus_gallus-4.0 ChrUn_7180000961607, whole genome shotgun sequence
TCTGTCTCTTGTCACTGTATTGTAGTGTGAACCCCTTAAAGGGAAGACCTGCTCTCCTTTGAAAATGCTT
GCTCATCTATATGCCTCATGCATACCCTCACTGGCAAAGGAGAGCTGAAGTAATTTTAGGACAGAGGAGT
ACTAGATTGTA
>gi|358482565|ref|NW_003766329.1| Gallus gallus breed Red Jungle fowl, inbred line UCD001 unplaced genomic scaffold, Gallus_gallus-4.0 ChrUn_7180000961609, whole genome shotgun sequence
TTTGACCAATGCATTTCAGCATGTTTTTTGACACTAGGTATGCCATTTGGGATGACAATATCAGTTTCCA
TTTCCATTAGAGGAAAATAAGGTT
我想要替換所有開始>
及其15列線。我不知道如何用列替換該行,所以我試圖用第15列替換該行的所有列。
所以我希望有作爲輸出是:
>ChrUn_7180000961607
TCTGTCTCTTGTCACTGTATTGTAGTGTGAACCCCTTAAAGGGAAGACCTGCTCTCCTTTGAAAATGCTT
GCTCATCTATATGCCTCATGCATACCCTCACTGGCAAAGGAGAGCTGAAGTAATTTTAGGACAGAGGAGT
ACTAGATTGTA
>ChrUn_7180000961609
TTTGACCAATGCATTTCAGCATGTTTTTTGACACTAGGTATGCCATTTGGGATGACAATATCAGTTTCCA
TTTCCATTAGAGGAAAATAAGGTT
這些都是我的命令:
awk '{if ($1 ~ />/) for (i=1; i<=19; i++) gsub ($i, $15)}'
test.fa
當我使用這個我得到的文件中的某些變化,但不是我想要的!列15被刪除!
awk '{if ($1 ~ />/) for (i=1; i<=19; i++) a= $15 gsub($i, a)}'
gga_ref_Gallus_gallus-4.0_unplaced.fa
當我使用這一個時,我得到這個錯誤!
awk: (FILENAME=gga_ref_Gallus_gallus-4.0_unplaced.fa FNR=1) fatal: sub_common: buf: can't allocate 521711124992 bytes of memory (Cannot allocate memory)
所以我想要的是二取代* LL與 * >
與15列啓動線,我想還是在開始>
!
你在乎那是第15場的一部分逗號?即使他們是該領域的一部分,您也不會在示例輸出中顯示他們。 – 2012-02-15 15:19:47
這不是管道分離的數據嗎?如果你在談論領域,你需要一個不同的領域分隔符。另外,使用perl這樣做會不會更容易? – tchrist 2012-02-15 15:22:07
@tchrist如果您查看數據,它似乎是以空格分隔的字段;最初我也感到困惑。在awk中看到它是微不足道的,我無法想象在perl中它會變得更容易。 – 2012-02-15 15:30:55