Thay thế các ký tự đặc biệt bằng bộ từ cmd Windows


3

Tôi cần thay thế chuỗi "\\"(trích dẫn kép dấu gạch chéo ngược dấu ngoặc kép) bằng ""(trích dẫn kép trích dẫn kép).

Sau đây là một ví dụ về dữ liệu cần thao tác:

","","","\\","",0,

Kết quả cần phải là:

","","","","",0,

Tôi không thể chỉ xóa \\dữ liệu vì đôi khi dữ liệu sẽ bao gồm các giá trị ở hai bên của dấu gạch chéo ngược vì nó đang được sử dụng để thể hiện lợi nhuận vận chuyển. Ví dụ, tôi muốn bỏ qua sự xuất hiện của dấu gạch chéo ngược này vì chúng được đi trước bởi dữ liệu thay vì chỉ trích dẫn kép.

","","","123\\456","",0,

Đã cố gắng vô ích:

sed "s/\"\\\"//g" atm-file.csv >atm-file.txt
sed "s:”\\”:"":g" atm-file.csv > atm-file.txt

Bạn dường như có dấu ngoặc kép trong ví dụ cuối cùng của bạn - đây có phải là chủ ý?
MrWhite

Không - sản phẩm phụ của trình soạn thảo văn bản tôi đang sử dụng tại thời điểm đó.
Brian Henry

Câu trả lời:


0

Điều này sẽ làm việc, nó làm việc cho tôi khi tôi thử nó:

sed 's|\"\\\\\"|\"\"|g' atm-file.csv >atm-file.txt

Nếu nó không hoạt động, bạn có thể cần cung cấp một liên kết đến .csvtập tin của bạn .
EDIT
Bây giờ tôi thấy rằng sedlệnh của tôi về cơ bản giống như những gì trong câu hỏi của bạn. Vui lòng cung cấp một liên kết đến một bản sao của .csvtập tin.

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.