GNU/Linux >> Belajar Linux >  >> Linux

Baca File Berorientasi Garis Yang Mungkin Tidak Berakhir Dengan Baris Baru?

Saya memiliki file bernama /tmp/urlFile di mana setiap baris mewakili url. Saya mencoba membaca dari file sebagai berikut:

cat "/tmp/urlFile" | while read url
do
    echo $url
done

Jika baris terakhir tidak diakhiri dengan karakter baris baru, baris tersebut tidak akan dibaca. Saya bertanya-tanya mengapa?

Apakah mungkin untuk membaca semua baris, terlepas dari apakah mereka diakhiri dengan baris baru atau tidak?

Jawaban yang Diterima:

Anda akan melakukan:

while IFS= read -r url || [ -n "$url" ]; do
  printf '%sn' "$url"
done < url.list

(efektif, loop itu menambahkan kembali baris baru yang hilang pada baris (non-) terakhir).

  • Mengapa menggunakan loop shell untuk memproses teks dianggap sebagai praktik yang buruk?
  • Mengerti “IFS=baca -r baris”?
  • Mengapa printf lebih baik daripada echo?

Linux
  1. Bagaimana cara menambahkan baris baru ke akhir file?

  2. Kotak Sibuk Membaca File Baris demi Baris?

  3. Bagaimana Cara Grep Garis Yang Tidak Dimulai Dengan "#" Atau ";"?

  1. Menambahkan Word Di Akhir Baris Dengan Sed?

  2. Pergi ke Awal atau Akhir File di Vim [Kiat Singkat]

  3. wc -l TIDAK menghitung file terakhir jika tidak memiliki karakter baris akhir

  1. Linux - periksa apakah ada baris kosong di akhir file

  2. Bagaimana cara mengganti file di jar dengan baris perintah di linux?

  3. sed:bagaimana cara mengganti baris jika ditemukan atau ditambahkan ke akhir file jika tidak ditemukan?