Tambahkan nomor baris ke output standar file teks di terminal

tentang menambahkan baris

Di artikel berikutnya, kita akan melihat beberapa cara untuk melakukannya tambahkan nomor baris ke file teks yang kami visualisasikan dari terminal. Jika Anda pernah bertanya-tanya bagaimana cara menambahkan nomor baris ini ke output standar file teks Gnu / Linux Anda, artikel singkat ini akan mencoba menjelaskan berbagai cara untuk melakukannya.

Ada beberapa cara untuk menambahkan nomor baris ke file teks. Selanjutnya kita akan melihat 6 metode berbeda untuk melakukannya. Saya membayangkan bahwa selain yang akan dilihat di bawah, akan ada beberapa cara lain, tetapi untuk memulainya, ini sudah cukup.

Tambahkan nomor baris ke keluaran file teks standar

Untuk memulainya, kita akan membuat file bernama file.txt. Di dalamnya saya akan menambahkan beberapa baris untuk memberi konten, yang akan diidentifikasi. Untuk melihat konten file yang baru saya buat, kita akan membuka terminal (Ctrl + Alt + T) dan menulis di dalamnya:

garis kucing

cat archivo.txt

Menggunakan perintah nl

Seperti yang dapat dilihat dari output dari perintah cat, file tersebut memiliki 10 baris, dengan tiga di antaranya kosong. Kami akan menambahkan nomor baris menggunakan perintah nl. Untuk melakukannya, jalankan:

garis nl

nl archivo.txt

Seperti yang terlihat pada tangkapan sebelumnya, perintah nl mengabaikan baris kosong. Cukup tambahkan nomor ke baris yang tidak kosong. jika kamu mau nomor semua baris, termasuk baris kosong, jalankan:

nl -ba baris

nl -b a archivo.txt

Selain itu, untuk kejelasan yang lebih besar saat membaca hasilnya, kami bisa tambahkan simbol setelah angka. Misalnya, untuk menambahkan titik setelah angka, jalankan:

nl -s dot lines

nl -s "." archivo.txt

Anda mungkin ingin sejajarkan lebar keluaran. Untuk melakukan ini, gunakan opsi -w dengan nilai variabel seperti yang ditunjukkan berikut ini:

nl w3 baris

nl -w3 archivo.txt

Menggunakan perintah cat

Perintah cat digunakan untuk menampilkan konten file, seperti yang terlihat pada tangkapan layar pertama artikel ini. Jika Anda ingin menambahkan angka ke output file, gunakan -n seperti yang ditunjukkan berikut ini:

kucing -n baris

cat -n archivo.txt

Anda mungkin tertarik meneruskan keluaran standar ke file baru. Untuk melakukannya, Anda hanya perlu menjalankan perintah seperti yang ditunjukkan di bawah ini:

cat -n archivo.txt > nuevoarchivo.txt

Menggunakan perintah awk

Ini mungkin metode paling kompleks untuk mendapatkan hasil. Menambahkan nomor baris ke file keluaran menggunakan perintah awk, Lari:

garis canggung

awk 'BEGIN{i=1} /.*/{printf "%d.% s\n",i,$0; i++}' archivo.txt

Seperti yang Anda lihat, saya telah menetapkan nomor awal sebagai 1 dalam parameter BEGIN. Kami dapat menetapkan nomor awal pilihan Anda, misalnya 5, seperti yang dapat dilihat di bawah ini:

awk mulai jam 5

awk 'BEGIN{i=5} /.*/{printf "%d.% s\n",i,$0; i++}' archivo.txt

Gunakan perintah berikut jika Anda tidak ingin memperhitungkan baris kosong:

awk tidak ada baris kosong

awk 'BEGIN{i=0} {if($0 !~ /^$/) {printf ("%d.%s \n",i,$0); i++} else { print $0} } ' archivo.txt

Jika menurut Anda perintah di atas agak sulit untuk diingat, gunakan perintah berikut, yang akan memberi Anda hasil yang sama seperti yang pertama ditunjukkan dengan perintah AWK:

awk fnr

awk '{ print FNR " " $0 }' archivo.txt

Menggunakan perintah sed

Untuk menambahkan nomor baris ke keluaran standar file menggunakan perintah sed, Lari:

garis sed

sed '/./=' archivo.txt | sed '/./N; s/\n/ /'

Perintah sed memiliki fitur keren untuk disebutkan. Bisa menampilkan baris tertentu dari sebuah file. Misalnya, untuk menampilkan baris ketujuh dari file kita, jalankan:

sed garis beton

sed -n 7p archivo.txt

Menggunakan perintah less

untuk menambahkan angka ke output standar dari sebuah file menggunakan less, Lari:

kurang -n

less -N archivo.txt

Menggunakan perintah grep

Perintah grep dapat digunakan untuk mencari baris yang berisi teks tertentu. Jika Anda ingin tambahkan nomor baris ke baris yang berisi teks yang dicari, Lari:

grep -n

grep -n "línea" archivo.txt

Perlu diingat bahwa perintah ini hanya akan menambahkan angka ke baris yang berisi string pencarian. Juga, seperti yang terlihat di tangkapan layar, itu mewarnai teks yang dicari. Semua hal lain di file yang diberikan akan dilewati.

Dan hanya itu, bahkan saya harus mengatakan itu perintah-perintah ini memiliki opsi lain yang dapat mereka lengkapi atau kembangkan yang telah dijelaskan dalam artikel ini. Untuk informasi lebih lanjut tentang perintah yang telah dinamai di sini, Anda dapat berkonsultasi dengan halaman manual.


tinggalkan Komentar Anda

Alamat email Anda tidak akan dipublikasikan. Bidang yang harus diisi ditandai dengan *

*

*

  1. Penanggung jawab data: Miguel Ángel Gatón
  2. Tujuan data: Mengontrol SPAM, manajemen komentar.
  3. Legitimasi: Persetujuan Anda
  4. Komunikasi data: Data tidak akan dikomunikasikan kepada pihak ketiga kecuali dengan kewajiban hukum.
  5. Penyimpanan data: Basis data dihosting oleh Occentus Networks (UE)
  6. Hak: Anda dapat membatasi, memulihkan, dan menghapus informasi Anda kapan saja.

  1.   tidak seorangpun dijo

    tidak perlu mencari ekspresi reguler "/.*/" dalam perintah awk
    secara default sudah membagi file menjadi beberapa baris dan $ 0 berisi baris, jadi

    awk 'BEGIN {i = 1} {printf "% 03d:% s \ n", i, $ 0; i ++} 'file.txt

    bekerja sama (dan lebih baik) dari

    awk 'BEGIN {i = 1} /.*/[printf "% d.% s \ n", i, $ 0; i ++} 'file.txt

  2.   Gambar placeholder Miguel Quintana dijo

    Kontribusi luar biasa! Terima kasih banyak!

  3.   rodrigo bulan dijo

    Sebelum memulai sapaan ramah.

    Di sini saya memiliki masalah dengan skrip berikut.

    Informasi pada baris yang cocok dengan pencarian diperoleh dari file dan disimpan dalam variabel.
    Contoh:
    nilai = `awk -F«: »'{cetak $ 1» »$ 2» »$ 3}' hociporky | grep "201025" -n`

    Kemudian Anda melakukan iterasi melalui variabel dan kemudian mencari baris tertentu di file.
    Contoh:
    untuk nilai dalam $ values; melakukan
    sed -n file "$ {value} p"
    dilakukan

    Tapi ini mengirimkan kesalahan
    sed: -e ekspresi # 1, karakter 1: perintah tidak diketahui: `

    Adakah yang bisa menjelaskan kepada saya mengapa dan bagaimana ini bisa diselesaikan?