Если вам не нужно сохранять исходный файл, он отредактирует его, чтобы удалить последнее слово для каждой строки:
ed file.txt <<'END'
1,$s/ [^ ]\+$//
wq
END
Обновление: не используйте этот метод: время ниже. Обратите внимание, что это оболочка рыбы, которая позволяет экранировать одинарные кавычки в одной строке в кавычках
$ yes "ID details2 details3 details4 details5" | head -n 10000000 > file
$ wc file
10000000 50000000 390000000 file
$ time sh -c 'printf "%s\\n" \'1,$s/ [^ ]\\+$//\' wq | ed file'
390000000
300000000
42.11user 34.21system 1:34.61elapsed 80%CPU (0avgtext+0avgdata 1407060maxresident)k
1366408inputs+1894576outputs (4major+351780minor)pagefaults 0swaps
$ yes "ID details2 details3 details4 details5" | head -n 10000000 > file
$ time sh -c 'cut -d" " -f1-4 file > file.new'
0.98user 0.39system 0:01.58elapsed 86%CPU (0avgtext+0avgdata 1700maxresident)k
480inputs+585944outputs (1major+154minor)pagefaults 0swaps
$ wc file file.new
10000000 50000000 390000000 file
10000000 40000000 300000000 file.new
20000000 90000000 690000000 total
1 мин 34 с для ed
, 1,5 с для cut