Đâ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
xlà sedlệ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 sedxử lý từng dòng theo dòng (đây là lý do tại sao dòng đầu tiên sẽ trống).
awkgiả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 -nlà lối tắt cho while(<..>) {..}cấu trúc và -edành cho tập lệnh nội tuyến.
head -n -1xóa dòng VÀ đầu tiên trong.txttệp của tôi , trên Ubuntu 14.04.2LTS.