我想轉換A B
中包含字母A T C G
的文件。
爲此,我有兩個文件(file1和file2)。如何更改基於第二個文件的文件
第一2行和文件1(一個,我需要轉換)的10列是:文件2的
G G G G A A C C A G G A G A A A C C G G
頭(列1,2和4是沒有用在這裏):
10000135098 A G 1 10000267940 A G 2 10000305793 A G 3 10000393248 A C 4 10000434180 A G 5 10000471078 A G 6 10000516404 A G 7 10000533815 A G 8 10000571340 A G 9 10000845494 A G 10
我試圖做的:
awk 'BEGIN {FS=" ";OFS=" "} {$1=$1; print}' file1 | awk 'BEGIN {FS="";OFS=""} NR==FNR {for (i=1;i<=NF;i++) {a[$3]="A";next} {if($i in a) print a[$3]; else print "B"}}' file2 -
但沒有任何反應。
的期望輸出將是:
A A A B B B B B B A A B A B B B B B A A
任何建議?
從AWK代碼,我不知道是什麼你正在努力實現。你介意在這裏擴展核心思想嗎?也可以在代碼示例中添加一些縮進。 –
'awk'BEGIN {FS =「」; OFS =「」} {$ 1 = $ 1; print}'file1'只是擠壓所有的空白來填充空白字符,然後'awk'BEGIN {FS =「」'是每個POSIX的未定義行爲,但在某些awks(例如gawk)將每行分割成一個字符。所有這些似乎都不太可能是你想要的,但是你還沒有告訴我們你想做什麼,所以idk ...... –