Đây là cách thực hiện với awk
:
awk 'NR>2 {print t} {t=$0}'
Ngoài ra một cách khác cho sed
:
sed '1d;x' file.txt
x
là sed
lệnh nâng cao , nó chuyển dòng hiện tại với dòng trước: dòng đi vào bộ đệm và trước đó đi vào màn hình và cứ thế trong khi sed
xử lý từng dòng theo dòng (đây là lý do tại sao dòng đầu tiên sẽ trống).
awk
giải pháp trên mỗi bước (dòng) đặt dòng hiện tại vào biến và bắt đầu in ra chỉ sau khi dòng thứ hai được truyền qua. Do đó, chúng tôi có các dòng shitfed trên màn hình từ thứ hai đến cuối cùng nhưng một. Dòng cuối cùng bị bỏ qua vì dòng này nằm trong biến và chỉ được in ở bước tiếp theo, nhưng tất cả các bước đã hết và chúng tôi không bao giờ thấy dòng trên màn hình.
Ý tưởng tương tự trong perl
:
perl -ne 'print $t if $.>2 ; $t=$_' file.txt
$.
là viết tắt của số dòng và $_
cho dòng hiện tại.
perl -n
là lối tắt cho while(<..>) {..}
cấu trúc và -e
dành cho tập lệnh nội tuyến.
head -n -1
xóa dòng VÀ đầu tiên trong.txt
tệp của tôi , trên Ubuntu 14.04.2LTS.