sed memberikan kesalahan "urutan byte ilegal" ketika mencoba mengganti karakter

0

Saya menggunakan "Terminal" di Mac OS X 10.10 (Yosemite) dan saya mencoba menghapus semua kemunculan a dari file, dengan menggunakan sed:

sed 's/a//g' file

Yang memberi saya kesalahan berikut:

sed: RE error: illegal byte sequence

sed 's/a//' file bekerja tanpa masalah. Kesalahan muncul ketika saya menambahkan g pengubah ekspresi reguler.

sodiumnitrate
sumber
Apakah ini berarti bahwa penyandian file berbeda?
sodiumnitrate
Seperti berdiri, sed berfungsi seperti yang diharapkan pada file teks. Jadi mungkin Anda harus mengedit pertanyaan Anda untuk memperjelas jenis file apa - dan apa isinya - Anda mencoba menjalankan perintah ini.
JakeGould

Jawaban:

0

Anda perlu menambahkan -i bersama dengan dua yang kosong ''. Jadi akan terlihat seperti ini: sed -i '' 's/a//g' filename.txt

Penjelasannya adalah -i sama dengan di tempat (simpan segera kembali ke file asli)

Jannick Langkjær
sumber