我有一個AWK腳本來將與特定模式匹配的特定值寫入.csv文件。 代碼如下:通過AWK腳本編寫輸出文件時出錯
BEGIN{print "Query Start,Query End, Target Start, Target End,Score, E,P,GC"}
/^\>g/ { Query=$0 }
/Query =/{
split($0,a," ")
query_start=a[3]
query_end=a[5]
query_end=gsub(/,/,"",query_end)
target_start=a[8]
target_end=a[10]
}
/Score =/{
split($0,a," ")
score=a[3]
score=gsub(/,/,"",score)
e=a[6]
e=gsub(/,/,"",e)
p=a[9]
p=gsub(/,/,"",p)
gc=a[12]
printf("%s,%s,%s,%s,%s,%s,%s,%s\n",query_start, query_end,target_start,target_end,score,e,p,gc)
}
輸入文件是如下:
100 0 100 172 0 0 0 51
的:
>gi|ABCDEF|
Plus strand results:
Query = 100 - 231, Target = 100 - 172
Score = 20.92, E = 0.01984, P = 4.309e-08, GC = 51
但我接收到一個.csv文件低於輸出所提供程序未能複製以下值: 查詢結束 得分 E P (注意:所有失敗值都在逗號(,)前面)
獲得正確輸出的任何幫助都會很好。
最好的問候,
阿米特
爲什麼要根據空間分割,在字段分隔符中使用awk。 – 2014-09-10 12:58:54
**提示:**'gsub'返回所做的替換次數,** ** **修改後的字符串。 – 2014-09-10 13:03:52
**提示2:**'gensub'返回一個修改後的字符串 – 2014-09-10 13:09:18