Membaca file baris demi baris (dengan spasi) dalam skrip Unix Shell - Masalah
Saya ingin membaca file baris demi baris dalam skrip shell Unix. Baris dapat berisi spasi di depan dan di belakang dan saya ingin membaca spasi tersebut juga di baris. Saya mencoba dengan "while read line &" tetapi perintah read menghilangkan karakter spasi dari baris :( Contoh jika baris dalam file adalah: -
abcd efghijk
abcdefg hijk
baris harus dibaca sebagai:-
1) " abcd efghijk &" 2) " abcdefg hijk &"
Apa yang saya coba adalah ini (yang tidak berhasil): -
while read line
do
echo $line
done < file.txt
Saya ingin baris termasuk karakter spasi dan tab di dalamnya. Tolong sarankan caranya.
18
2
Coba ini,
EDIT:
Dari
man bash
Anda ingin membaca baris raw untuk menghindari masalah dengan backslash dalam input (gunakan
-r
):Ini akan menjaga spasi di dalam baris, tetapi menghilangkan spasi di depan dan di belakang baris. Untuk menjaga hal itu juga, atur IFS kosong, seperti dalam
Ini sekarang setara dengan
cat < file.txt
selamafile.txt
diakhiri dengan baris baru.Perhatikan bahwa Anda harus mengutip dua kali
"$line"
untuk menjaga agar pemisahan kata tidak memisahkan baris menjadi kata-kata terpisah--sehingga kehilangan beberapa urutan spasi.