in reply to Replacing spaces

Hmmm...if the missing column is always after "syntenic," you could try something akin to this:

#/usr/bin/perl use strict; use warnings; while(<DATA>) { chomp; my @rec = split(/\s+/, $_); $rec[4] .= "\t" if(scalar(@rec) == 9); print join("\t", @rec)."\n"; } __DATA__ MGI:1918918 381629 0610007C21Rik 5 syntenic 51374 C2orf28 2p23.3 B MGI:1918917 71667 0610007L01Rik 5 syntenic F 55069 C7orf42 7q11.21 C MGI:1923501 76251 0610007P08Rik 13 syntenic B3 375748 C9orf102 9q22.32 + M MGI:1915571 58520 0610007P14Rik 12 syntenic 11161 C14orf1 14q24.3 B
which is presuming that "syntenic" is element 4 (counting from 0) and records including something like "syntenic B3" split into 10, vs 9, columns. The if test just adds a tab to "syntenic" when the record splits into 9, vs 10, columns.


Information about American English usage here and here. Floating point issues? Please read this before posting. — emc