2012-02-21 32 views
6

Tôi có một vài tệp mà tôi muốn chuyển đổi từ Dos sang Unix. Có bất kỳ API hoặc phương pháp nào sẽ giúp tôi thực hiện việc này không?Cách chuyển đổi tệp từ Dos sang Unix

+0

Có thể trùng lặp [Làm cách nào để chuyển đổi dòng lệnh DOS/Windows (CRLF) thành dòng mới Unix (\ n) trong tập lệnh Bash?] (Https://stackoverflow.com/questions/2613800/làm thế nào để chuyển đổi-dos-windows-newline-crlf-to-unix-newline-n-in-a-bash-script) – jww

Trả lời

16

Có các công cụ Linux có thể thực hiện việc này (ví dụ: dos2unix).

Trong Java, bạn có thể thực hiện với String.replaceAll().

DOS sử dụng \r\n để chấm dứt dòng, trong khi UNIX sử dụng một đơn \n.

String unixText = windowsText.replaceAll("\r\n", "\n"); // DOS2UNIX 

Vì vậy, không, không tồn tại API. Có, nó đã chết dễ dàng.

+0

Tôi có cần phải mở tất cả các tệp một và thay thếAll ("\ r \ n "," \ n "). –

+1

Vâng, tất nhiên. Cũng xin lưu ý rằng điều này chỉ có ý nghĩa đối với các tệp văn bản ASCII! – parasietje

+0

điều gì về hỗ trợ mẫu tệp để chỉnh sửa nhiều tệp? – jontejj

1

Hầu hết các bản phân phối unix/linux đều có tiện ích có tên là unix2dosdos2unix lệnh.

CHỈNH SỬA: Chỉ cần sao chép tệp của bạn vào máy unix và chạy dos2unix *.

Bạn cũng có thể tìm thấy tiện ích này cho Windows và thực hiện tương tự.

0

Có một tiện ích/lệnh trong Linux/Unix được gọi là dos2unix sẽ giúp bạn chuyển đổi tệp của bạn từ dos sang định dạng unix. Để cài đặt chỉ cần gõ trong giao diện điều khiển (bạn có thể cần quyền root)

yum install dos2unix 

Để thực hiện chuyển đổi, bạn phải sử dụng lệnh dos2unix theo sau tên tệp. Ví dụ

[[email protected] ~]$ dos2unix sample.txt 
dos2unix: converting file sample.txt to UNIX format ... 

Đối với tất cả các file trong một thư mục bạn chỉ có thể sử dụng

dos2unix * 
+0

Tôi không biết tại sao câu trả lời này lại bị bỏ phiếu. Nó đã làm, sau khi tất cả, chỉ ra tên gói để sử dụng khi cài đặt từ 'yum', mà không ai trong số các câu trả lời khác lưu ý. –

1

Chỉ cần một cách thay thế (so với cái parasietje mô tả) sử dụng dox2unix. Giả sử bạn tất cả dos tập tin nằm trong một thư mục

Runtime.getRuntime().exec("dos2unix /path/to/dos/files/*"); 
0
String unixText = windowsText.replaceAll("\r\n", "\n"); // DOS2UNI 

Dòng trên sẽ loại bỏ tất cả \ r nhưng đối với một số lý do nó cũng loại bỏ các \ n vì vậy tôi đã phải thêm nó trở lại khi in unixText vào một tập tin : unixText + "\ n"

Các vấn đề liên quan