我想比较文件的连续列并返回匹配元素的数量。我宁愿使用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