我有这个制表符分隔的文件内容:
Chr10_16 0.54 1.00
Chr10_51 1.00 1.00 1.00
Chr1_104 0.37 0.75 1.00
Chr1_105 0.94
Chr1_109 1.00
我想将其转换为:
Chr10_16 0 0.54 1.00
Chr10_51 1.00 1.00 1.00
Chr1_104 0.37 0.75 1.00
Chr1_105 0 0 0.94
Chr1_109 0 1.00 0
我尝试了不同的命令,但它们没有像我预期的那样工作。 E.g。
awk 'BEGIN {FS = OFS = "\t"} {for(i=1; i<=NF; i++) if($i ~ /^ *$/) $i = 0 }; 1'
或
tr '\t' '0'
有什么建议吗? 感谢
答案 0 :(得分:2)
你可以这样做:
sed -e 's/\t\t/\t0\t/g' -e 's/\t\t/\t0\t/g' -e 's/^\t/0\t/' -e 's/\t$/\t0/' file
那是......
sed
与替换内容不匹配。因此,如果您有3个相邻的标签,则只会填充两个空白中的一个。