我想比較文件的連續列並返回匹配元素的數量。我寧願使用shell腳本或awk
。這裏是我嘗試使用的示例bash
/AWK
腳本。比較文件的連續列並獲取匹配元素的數量
#!/bin/bash
for i in 3 4 5 6 7 8 9
do
for j in 3 4 5 6 7 8 9
do
`awk "$i == $j" phased.txt | wc -l`
done
done
我有尺寸147189 * 828的一個文件,我要比較的每個列,並返回在828 * 828基體匹配的元素(A相似性矩陣)的數量。 這在MATLAB中相當容易,但是,加載大文件需要很長時間。我可以比較兩列,並與下面的awk命令返回匹配的元素個數:
awk '$3==$4' phased.txt | wc -l
,但需要一些幫助做整個文件。
是我工作中的數據的一個片段是:
# sampleID HGDP00511 HGDP00511 HGDP00512 HGDP00512 HGDP00513 HGDP00513
M rs4124251 0 0 A G 0 A
M rs6650104 0 A C T 0 0
M rs12184279 0 0 G A T 0
................................................................................
比較我將計算6 * 6矩陣在這種情況下,後:包含這些列的匹配百分比。
非常感謝,凱文!這運行順利:) 我試圖$$,但你''$'做了伎倆!非常感激。 – peacefrog
很高興幫助。如果你沒有弄清楚,'$$'是shell的PID。 – Kevin