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:
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:
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 -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 "." archivo.txt
Anda mungkin ingin sejajarkan lebar keluaran. Untuk melakukan ini, gunakan opsi -w dengan nilai variabel seperti yang ditunjukkan berikut ini:
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:
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:
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 'BEGIN{i=5} /.*/{printf "%d.% s\n",i,$0; i++}' archivo.txt
Gunakan perintah berikut jika Anda tidak ingin memperhitungkan 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 '{ print FNR " " $0 }' archivo.txt
Menggunakan perintah sed
Untuk menambahkan nomor baris ke keluaran standar file menggunakan perintah sed, Lari:
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 -n 7p archivo.txt
Menggunakan perintah less
untuk menambahkan angka ke output standar dari sebuah file menggunakan less, Lari:
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 "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.
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
Kontribusi luar biasa! Terima kasih banyak!
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?