Dengan awk:
awk 'NF{NF-=1};1' <in >out
atau:
awk 'NF{NF--};1' <in >out
atau:
awk 'NF{--NF};1' <in >out
Meskipun ini terlihat seperti voodoo, ia berfungsi. Ada tiga bagian untuk masing-masing perintah awk ini.
Yang pertama adalah NF, yang merupakan prasyarat untuk bagian kedua. NFadalah variabel yang berisi jumlah bidang dalam satu baris. Di AWK, semuanya benar jika bukan 0 atau string kosong "". Oleh karena itu, bagian kedua (di mana NFdikurangi) hanya terjadi jika NFtidak 0.
Bagian kedua (baik NF-=1 NF--atau --NF) hanya mengurangi satu dari NFvariabel. Ini mencegah bidang terakhir dari dicetak, karena ketika Anda mengubah bidang (menghapus bidang terakhir dalam kasus ini), awkmembangun kembali $0, menggabungkan semua bidang yang dipisahkan oleh ruang secara default. $0tidak mengandung bidang terakhir lagi.
Bagian terakhir adalah 1. Itu tidak ajaib, hanya digunakan sebagai ungkapan yang berarti true. Jika awkekspresi bernilai true tanpa tindakan yang terkait, awktindakan default adalah print $0.