А если количество полей все же разное, то все равно можно воспользоваться awk: awk '{$3 = $6 = ""; gsub("[[:space:]][[:space:]]\+", " "); print}' И да, не awk '{print $1 " " $2 " " $4 " " $5 " " $7}', ибо это пиздец, а awk 'BEGIN {OFS = " "} {print $1, $2, $4, $5, $7}', причем экшен при паттерне BEGIN реально нужен только если в системе где-то в настройках awk записан другой OFS.