sed ให้ข้อผิดพลาด "ลำดับไบต์ที่ผิดกฎหมาย" เมื่อพยายามแทนที่อักขระ


0

ฉันใช้“ เทอร์มินัล” ใน Mac OS X 10.10 (โยเซมิตี) และฉันพยายามลบการเกิดขึ้นทั้งหมดของ a จากไฟล์โดยใช้ sed:

sed 's/a//g' file

ซึ่งทำให้ฉันข้อผิดพลาดต่อไปนี้:

sed: RE error: illegal byte sequence

sed 's/a//' file ทำงานได้โดยไม่มีปัญหา ข้อผิดพลาดปรากฏขึ้นเมื่อฉันเพิ่ม g ปรับปรุงเพื่อการแสดงออกปกติ



การเข้ารหัสไฟล์แตกต่างกันหรือไม่?
sodiumnitrate

ตามที่มันยืน sed ทำงานตามที่คาดไว้ในไฟล์ข้อความ ดังนั้นบางทีคุณควรแก้ไขคำถามของคุณเพื่อชี้แจงประเภทของไฟล์ - และเนื้อหาที่อาจเป็น - คุณพยายามเรียกใช้คำสั่งนี้
JakeGould

คำตอบ:


0

คุณต้องเพิ่ม -i พร้อมกับว่างสอง '' ดังนั้นจะมีลักษณะเช่นนี้: sed -i '' 's/a//g' filename.txt

คำอธิบายคือ -i เท่ากับตำแหน่ง (บันทึกกลับไปยังไฟล์ต้นฉบับ)

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.