使用sed

时间:2018-03-02 18:24:38

标签: sed plink

我正在尝试在R中使用LDheatmap库。所需的基因型矩阵必须采用A / T T / C G / G等格式...作为数据帧导入。

从.ped plink文件开始,我使用SED进行文本转换。 我需要用/(正斜杠)替换每隔一个空格。这可能对某人有用。

自:

 loc1 loc2 loc3 loc4 loc5
ind-1 A A T C T C A G G C
ind-2 A A T G T C A C G C
ind-3 A A C T T C A C G C
ind-4 C A T T T G A C G C
ind-5 A A C T T C A C G C
ind-6 A T C G T C A C G C

要:

 loc1 loc2 loc3 loc4 loc5
ind-1 A/A T/C T/C A/G G/C
ind-2 A/A T/G T/C A/C G/C
ind-3 A/A C/T T/C A/C G/C
ind-4 C/A T/T T/G A/C G/C
ind-5 A/A C/T T/C A/C G/C
ind-6 A/T C/G T/C A/C G/C

我用了sed:

sed '2,${s/\(\s.\) \(.\)/\1\/\2/g}' pedfile > newfile

我偶然得到了这个结果,所以我会尝试解码sed线以确保我的解释是正确的:

2,$:从文件行的开头到结尾,启动{ }之间的脚本。

s/:替换。

\(\s.\):第一个块,包含一个空格,后跟任何单个字符(核苷酸)。

\(.\):第二个块,前面是块外的空格,包含一个单个字符。

\1\/\2:使用正斜杠/连接块\ 1和块\ 2。需要将正斜杠设置为文本,方法是使用前面的\来退出正则表达式语法。

/g:将正则表达式代码应用于以下所有行。

问题:我的解释是正确的还是我错过了什么?

0 个答案:

没有答案