GNU/Linux >> Belajar Linux >  >> Linux

Cetak file, lewati baris X pertama, di Bash

Anda membutuhkan ekor. Beberapa contoh:

$ tail great-big-file.log
< Last 10 lines of great-big-file.log >

Jika Anda benar-benar perlu MELEWATI sejumlah baris "pertama" tertentu, gunakan

$ tail -n +<N+1> <filename>
< filename, excluding first N lines. >

Artinya, jika Anda ingin melewati N baris, Anda mulai mencetak baris N+1. Contoh:

$ tail -n +11 /tmp/myfile
< /tmp/myfile, starting at line 11, or skipping the first 10 lines. >

Jika Anda hanya ingin melihat begitu banyak baris terakhir, hilangkan "+":

$ tail -n <N> <filename>
< last N lines of file. >

Cara termudah yang saya temukan untuk menghapus sepuluh baris pertama file:

$ sed 1,10d file.txt

Dalam kasus umum di mana X adalah jumlah baris awal yang akan dihapus, kredit untuk pemberi komentar dan editor untuk ini:

$ sed 1,Xd file.txt

Jika Anda ingin melewati dua baris pertama:

tail -n +3 <filename>

Jika Anda ingin melewati baris x pertama:

tail -n +$((x+1)) <filename>

Jika Anda memiliki ekor GNU yang tersedia di sistem Anda, Anda dapat melakukan hal berikut:

tail -n +1000001 huge-file.log

Ini adalah + karakter yang melakukan apa yang Anda inginkan. Mengutip dari halaman manual:

Jika karakter pertama K (jumlah byte atau baris) adalah a`+', cetak dimulai dengan item Kth dari awal setiap file.

Jadi, seperti disebutkan dalam komentar, meletakkan +1000001 mulai dicetak dengan item pertama setelah 1.000.000 baris pertama.


Linux
  1. Bagaimana Melewati Garis File?

  2. Mengapa Skrip Bash Tidak Mengenal Alias?

  3. Basa'?

  1. Menggabungkan Garis Berdasarkan Karakter Pertama Dari Baris Berikutnya?

  2. Apakah Tail Membaca Seluruh File?

  3. Hapus Baris Header Ekstra Dari File, Kecuali Baris Pertama?

  1. Cetak Konten File Tanpa Baris Pertama Dan Terakhir?

  2. Bagaimana Cara Menghapus N Baris Pertama Dari File Ascii Menggunakan Perintah Shell?

  3. Mengakhiri Tail -f Setelah Cetak N Garis?