GNU/Linux >> Belajar Linux >  >> Linux

Bagaimana cara menampilkan baris tertentu dari file teks di Linux?

Solusi 1:

sed -n '10000000,10000020p' filename

Anda mungkin dapat mempercepatnya sedikit seperti ini:

sed -n '10000000,10000020p; 10000021q' filename

Dalam perintah tersebut, opsi -n menyebabkan sed untuk "menekan pencetakan otomatis ruang pola". p perintah "cetak [s] ruang pola saat ini" dan q perintah "Segera keluar [s] skrip sed tanpa memproses input lagi ..." Kutipan berasal dari sed man halaman.

Omong-omong, perintah Anda

tail -n 10000000 filename | head 10

dimulai pada baris kesepuluh juta dari akhir file, sementara perintah "tengah" Anda tampaknya mulai dari sepersepuluh juta dari awal yang setara dengan:

head -n 10000010 filename | tail 10

Masalahnya adalah bahwa untuk file yang tidak disortir dengan garis panjang variabel, proses apa pun harus melalui file yang menghitung baris baru. Tidak ada cara untuk memotongnya.

Namun, jika file diurutkan (file log dengan cap waktu, misalnya) atau memiliki garis panjang tetap, maka Anda dapat mencari ke dalam file berdasarkan posisi byte. Dalam contoh file log, Anda dapat melakukan pencarian biner untuk rentang waktu seperti yang dilakukan skrip Python saya di sini*. Dalam kasus file dengan panjang rekaman tetap, itu sangat mudah. Anda tinggal mencari linelength * linecount karakter ke dalam file.

Solusi 2:

Saya menemukan penggunaan sed berikut

sed -n '10000000,+20p'  filename

Semoga bermanfaat bagi seseorang!

Solusi 3:

Ini adalah pertama kalinya saya memposting di sini! Bagaimanapun, yang ini mudah. Katakanlah Anda ingin menarik garis 8872 dari file Anda yang bernama file.txt. Inilah cara Anda melakukannya:

cat -n file.txt | grep '^ *8872'

Sekarang pertanyaannya adalah menemukan 20 baris setelah ini. Untuk mencapai ini, Anda melakukan

cat -n file.txt | grep -A 20 '^ *8872'

Untuk baris di sekitar atau sebelum lihat tanda -B dan -C di manual grep.


Linux
  1. Cara Mudah Menambahkan Teks ke Akhir File di Linux

  2. Bagaimana Cara Menghapus Beberapa Baris Acak Dari File Teks Menggunakan Sed?

  3. Cara Menghitung baris dalam file di UNIX/Linux

  1. Bagaimana membedakan biner dari file teks di linux

  2. Bagaimana cara menghapus baris baru dari file teks?

  3. Linux - grep dari baris tertentu ke akhir file

  1. Cara Menambahkan Teks ke Akhir File di Linux

  2. Cara Menampilkan Baris Tertentu dari File di Baris Perintah Linux

  3. Cara mengunduh file dari URL di Linux