sed cung cấp cho byte chuỗi byte bất hợp pháp Lỗi lỗi khi cố gắng thay thế một ký tự


0

Tôi đang sử dụng thiết bị đầu cuối của Windows trong Mac OS X 10.10 (Yosemite) và tôi đang cố gắng xóa tất cả các lần xuất hiện của a từ một tập tin, bằng cách sử dụng sed:

sed 's/a//g' file

Điều này cho tôi lỗi sau:

sed: RE error: illegal byte sequence

sed 's/a//' file hoạt động mà không có vấn đề gì Lỗi xuất hiện khi tôi thêm g bổ nghĩa cho biểu thức chính quy.



Có nghĩa là mã hóa của tập tin là khác nhau?
sodiumnitrate

Như nó đứng, sed hoạt động như mong đợi trên một tập tin văn bản. Vì vậy, có lẽ bạn nên chỉnh sửa câu hỏi của mình để làm rõ loại tập tin nào và nội dung có thể là gì mà bạn đang cố gắng chạy lệnh này.
JakeGould

Câu trả lời:


0

Bạn cần thêm -i cùng với hai '' trống. Vì vậy, nó sẽ trông như thế này: sed -i '' 's/a//g' filename.txt

Giải thích là -i bằng tại chỗ (lưu lại ngay vào tệp gốc)

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.