Cách nhanh nhất và cốt lõi nhất để thay thế tập tin \ r \ nv bằng cách sử dụng tập tin?


11

Tôi cho rằng trlà một phương pháp cốt lõi hơn và do đó có lẽ là cách nhanh hơn để thay thế mọi thứ trong một tệp nhất định.

Tuy nhiên tr chỉ có thể thay thế số lượng ký tự bằng nhau. Ý nghĩa...

Chỉ có thể thay thế 2 ký tự bằng 2 ký tự có nghĩa là thay thế

\r\nvới \nlà ra khỏi câu hỏi thông quatr

là lựa chọn tốt nhất tiếp theo sed?

được sed cốt lõi nhất và cách nhanh nhất để thay thế \r\nvới \nmột tập tin cho việc thiếu khả năng trong tr?

muốn một ví dụ nếu có thể.


Chính xác thì "Most Core" nghĩa là gì?
Keith Thompson

Câu trả lời:


23

Với sed, bạn có thể làm:

sed 's/\r$//'

Cách tương tự có thể làm với tr, bạn chỉ phải xóa \r:

tr -d '\r'

mặc dù điều này sẽ loại bỏ tất cả các trường hợp \r, không cần thiết theo sau \n.


2
Hai cái này không giống nhau. Cái đầu tiên thay thế '\ r \ n' bằng '\ n' (hiệu quả), nhưng cái thứ hai sẽ xóa tất cả '\ r' bất cứ nơi nào chúng xuất hiện. Việc quay trở lại xuất hiện trong một tệp văn bản là không phổ biến, ngoại trừ ở cuối dòng, nhưng điều đó có thể xảy ra.
AMS

4

Hoặc dùng dos2unix

ví dụ:

$ echo -ne "1\r\n2" |  od -A n -t x1
 31 0d 0a 32
$ echo -ne "1\r\n2" | dos2unix | od -A n -t x1
 31 0a 32

chúng ta có thể thấy thay thế \r\nbằng\n


Đây không phải là một chương trình trong danh sách OP nhưng theo tôi cách tốt nhất để thực hiện công việc. Cá nhân tôi sử dụng nó mỗi khi tôi cần chuyển đổi như vậy.
рüффп
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.