1

我正在尝试重新格式化参考图例文件以使其与 bcftools 兼容。

本质上,我需要从这个出发:

id position a0 a1 TYPE AFR AMR EAS EUR SAS ALL
1:123:A:T 123 A T SNP 0.01 0.01 0 0 0 0.01
1:679:A:T 123 A T SNP 0.01 0.01 0 0 0 0.01

对此:

id position a0 a1 TYPE AFR AMR EAS EUR SAS ALL
1:123_A_T 123 A T SNP 0.01 0.01 0 0 0 0.01
1:679_A_T 123 A T SNP 0.01 0.01 0 0 0 0.01

理想情况下使用 bash。

4

1 回答 1

1

如果sed是一个选项:

sed 's/:/_/2; s/:/_/2' file > reformatted_file

(此命令s/:/_/2将第二个“:”替换为下划线,然后将第三个“:”替换为下划线,尽管从技术上讲它现在是第二个“:”(s/:/_/2),因为第一个已经更改了。这有意义吗?)

或仅使用 bash:

while read -r line
do
    tmp="${line//:/_}"
    echo "${tmp/_/:}"
done < file > reformatted_file

(*这适用于您的示例,但是用下划线替换每个“:”,然后将第一个更改回“:”可能会对您的文件产生意想不到的影响,例如它可能会弄乱您的标题)

于 2022-02-03T04:20:26.263 回答