Anda mungkin memiliki spasi atau tab di baris "kosong" Anda. Gunakan kelas POSIX dengan sed
untuk menghapus semua baris yang hanya berisi spasi putih:
sed '/^[[:space:]]*$/d'
Versi lebih pendek yang menggunakan ERE, misalnya dengan gnu sed:
sed -r '/^\s*$/d'
(Perhatikan bahwa sed TIDAK mendukung PCRE.)
Saya kehilangan awk
solusi:
awk 'NF' file
Yang akan mengembalikan:
xxxxxx
yyyyyy
zzzzzz
Bagaimana cara kerjanya? Sejak NF
singkatan dari "jumlah bidang", baris yang kosong memiliki 0 bidang, sehingga awk mengevaluasi 0 hingga Salah dan tidak ada baris yang dicetak; namun, jika ada setidaknya satu kolom, evaluasinya adalah True dan menghasilkan awk
melakukan tindakan standarnya:cetak baris saat ini.
sed
'/^[[:space:]]*$/d'
'/^\s*$/d'
'/^$/d'
-n '/^\s*$/!p'
grep
.
-v '^$'
-v '^\s*$'
-v '^[[:space:]]*$'
aduh
/./
'NF'
'length'
'/^[ \t]*$/ {next;} {print}'
'!/^[ \t]*$/'
sed '/^$/d'
harus baik-baik saja, apakah Anda mengharapkan untuk memodifikasi file di tempat? Jika demikian, Anda harus menggunakan -i
bendera.
Mungkin baris tersebut tidak kosong, jadi jika demikian, lihat pertanyaan ini Hapus baris kosong dari file txt, hapus spasi dari awal dan akhir baris. Saya yakin itulah yang ingin Anda capai.