Сperl
:
perl -F/\\t/ -lpe '$c = 0; $F[-1] eq "" or pop @F; $_ = (map { $c += 8 - (length) % 8 } @F)[-1]' file
В качестве альтернативы:
perl -MList::Util=reduce -lpe \
'@F = split /\t/, $_, -1; pop @F if $F[-1] ne ""; $_ = reduce { $a + $b } map { 8 - (length) % 8 } @F' file
Вы можете заменить 8 выше другим значением, если хотите, чтобы вкладки TAB имели другую длину.