Это потому, что . *
будет соответствовать чему угодно (поскольку это подстановочный знак регулярного выражения), а затем может и будет быть максимально развернутым до последней просмотренной вкладки (включая любые другие вкладки между ними). Вам нужно [^ \ t] *
, который будет соответствовать любой строке, не содержащей табуляции, поэтому объединенный ваш вызов sed должен выглядеть так: sed 's / [^ \ t] * \ t / \ t / '