Inilah cara melakukannya awk
:
awk 'NR>2 {print t} {t=$0}'
Juga cara lain untuk sed
:
sed '1d;x' file.txt
x
adalah sed
perintah tingkat lanjut , ia beralih baris saat ini dengan yang sebelumnya: saat ini masuk ke buffer dan sebelumnya pergi ke layar dan seterusnya saat sed
memproses aliran baris demi baris (inilah sebabnya baris pertama akan kosong).
awk
solusi pada setiap langkah (baris) menempatkan baris saat ini ke dalam variabel dan mulai mencetaknya hanya setelah baris kedua dilewati. Dengan demikian, kami mendapat urutan garis shitfed pada layar dari yang kedua ke yang terakhir. Baris terakhir dihilangkan karena baris dalam variabel dan harus dicetak hanya pada langkah berikutnya, tetapi semua langkah sudah habis dan kita tidak pernah melihat garis di layar.
Gagasan yang sama di perl
:
perl -ne 'print $t if $.>2 ; $t=$_' file.txt
$.
singkatan dari nomor baris dan $_
untuk baris saat ini.
perl -n
adalah jalan pintas untuk while(<..>) {..}
struktur dan -e
untuk skrip inline.
head -n -1
menghapus baris pertama DAN terakhir dari.txt
file saya , di Ubuntu 14.04.2LTS.