Tôi đang tìm một số công cụ dòng lệnh cho Linux mà có thể giúp tôi phát hiện và chuyển đổi tập tin từ bộ ký tự như iso-8859-1 và windows-1252-utf-8 và từ kết thúc dòng của Windows cho các kết thúc dòng Unix.Làm thế nào để đảm bảo tất cả các tệp nguồn của tôi vẫn giữ nguyên UTF-8 với các đầu dòng Unix?
Lý do tôi cần điều này là tôi đang làm việc trên các dự án trên máy chủ Linux qua SFTP với trình chỉnh sửa trên Windows (như Văn bản siêu việt) mà chỉ liên tục vít những thứ này lên. Ngay bây giờ tôi đoán khoảng một nửa tác phẩm của tôi là utf-8, còn lại là iso-8859-1 và windows-1252 như nó có vẻ chữ Sublime chỉ là chọn nhân vật do đó những biểu tượng tập tin chứa khi Tôi lưu nó. Các đầu cuối dòng luôn là kết thúc của dòng Windows mặc dù tôi đã chỉ định trong các tùy chọn mặc định kết thúc dòng là LF, vì vậy khoảng một nửa tệp của tôi có LF và một nửa là CRLF.
Vì vậy, tôi sẽ cần ít nhất một công cụ mà đệ quy sẽ quét thư mục dự án của tôi và cảnh báo cho tôi các tập tin mà đi chệch khỏi utf-8 với LF kết thúc dòng vì vậy tôi bằng tay có thể khắc phục điều đó trước khi tôi cam kết thay đổi của tôi để GIT.
Bất kỳ nhận xét và trải nghiệm cá nhân nào về chủ đề cũng sẽ được hoan nghênh.
Cảm ơn
Edit: Tôi có một giải pháp tạm thời trong nơi mà tôi sử dụng tree
và file
thông tin đầu ra về tất cả các tập tin trong dự án của tôi, nhưng nó kinda rung rinh. Nếu tôi không bao gồm các tùy chọn -i
cho file
sau đó rất nhiều tác phẩm của tôi được đầu ra khác nhau như ASCII C++ chương trình văn bản và tài liệu HTML text và văn bản tiếng Anh vv:
$ tree -f -i -a -I node_modules --noreport -n | xargs file | grep -v directory ./config.json: ASCII C++ program text ./debugserver.sh: ASCII text ./.gitignore: ASCII text, with no line terminators ./lib/config.js: ASCII text ./lib/database.js: ASCII text ./lib/get_input.js: ASCII text ./lib/models/stream.js: ASCII English text ./lib/serverconfig.js: ASCII text ./lib/server.js: ASCII text ./package.json: ASCII text ./public/index.html: HTML document text ./src/config.coffee: ASCII English text ./src/database.coffee: ASCII English text ./src/get_input.coffee: ASCII English text, with CRLF line terminators ./src/jtv.coffee: ASCII English text ./src/models/stream.coffee: ASCII English text ./src/server.coffee: ASCII text ./src/serverconfig.coffee: ASCII text ./testserver.sh: ASCII text ./vendor/minify.json.js: ASCII C++ program text, with CRLF line terminators
Nhưng nếu tôi làm bao gồm -i
nó không chỉ cho tôi terminators dòng:
$ tree -f -i -a -I node_modules --noreport -n | xargs file -i | grep -v directory ./config.json: text/x-c++; charset=us-ascii ./debugserver.sh: text/plain; charset=us-ascii ./.gitignore: text/plain; charset=us-ascii ./lib/config.js: text/plain; charset=us-ascii ./lib/database.js: text/plain; charset=us-ascii ./lib/get_input.js: text/plain; charset=us-ascii ./lib/models/stream.js: text/plain; charset=us-ascii ./lib/serverconfig.js: text/plain; charset=us-ascii ./lib/server.js: text/plain; charset=us-ascii ./package.json: text/plain; charset=us-ascii ./public/index.html: text/html; charset=us-ascii ./src/config.coffee: text/plain; charset=us-ascii ./src/database.coffee: text/plain; charset=us-ascii ./src/get_input.coffee: text/plain; charset=us-ascii ./src/jtv.coffee: text/plain; charset=us-ascii ./src/models/stream.coffee: text/plain; charset=us-ascii ./src/server.coffee: text/plain; charset=us-ascii ./src/serverconfig.coffee: text/plain; charset=us-ascii ./testserver.sh: text/plain; charset=us-ascii ./vendor/minify.json.js: text/x-c++; charset=us-ascii
Cũng tại sao nó hiển thị charset = vn-ascii và không phải utf-8? Và văn bản /x-C++ là gì? Có cách nào tôi có thể xuất chỉ charset=utf-8
và line-terminators=LF
cho mỗi tệp không?
Đối với một workaround, có lẽ bạn có thể bao gồm một bình luận với một mã ký tự decidedly không phải ASCII (biểu tượng bản quyền đến với tâm trí) và lưu dưới dạng UTF-8 - có lẽ điều này là đủ để Sublime Text ngừng phỏng đoán quá nhiều. – tripleee
Tôi cũng không thể cho cuộc sống của tôi có được Sublime Text để chỉ sử dụng vi phạm ngắt dòng Unix cho tình yêu của Thiên Chúa !! "default_line_ending": "unix" chỉ hoạt động! – jlarson