Giới thiệu
Trong lab này, bạn sẽ học cách sử dụng lệnh dos2unix
để chuyển đổi các tệp văn bản từ định dạng DOS/Windows sang định dạng Unix/Linux. Lệnh dos2unix
là một công cụ đơn giản và hiệu quả, loại bỏ các ký tự carriage return và đảm bảo tính tương thích khi truyền tệp giữa các hệ thống Windows và Unix-like. Bạn cũng sẽ khám phá cách tự động hóa quá trình chuyển đổi bằng cách sử dụng shell scripts. Lệnh dos2unix
là một phần của gói tofrodos
, đã được cài đặt trong môi trường Ubuntu 22.04 của bạn.
Giới thiệu về lệnh dos2unix
Trong bước này, bạn sẽ tìm hiểu về lệnh dos2unix
, được sử dụng để chuyển đổi các tệp văn bản từ định dạng DOS/Windows sang định dạng Unix/Linux.
Định dạng DOS/Windows sử dụng các ký tự carriage return và line feed (CR+LF) để chỉ ra sự kết thúc của một dòng, trong khi định dạng Unix/Linux chỉ sử dụng ký tự line feed (LF). Sự khác biệt này có thể gây ra sự cố khi truyền tệp giữa các hệ thống Windows và Unix-like.
Lệnh dos2unix
là một công cụ đơn giản và hiệu quả để giải quyết vấn đề này. Nó đọc tệp đầu vào, loại bỏ các ký tự carriage return và ghi nội dung đã sửa đổi vào tệp đầu ra.
Hãy bắt đầu bằng cách kiểm tra phiên bản của lệnh dos2unix
được cài đặt trên hệ thống của bạn:
dos2unix --version
Ví dụ đầu ra:
dos2unix (NLS version)
Copyright (C) 2009-2022 Bernd Johannes Wuebben.
Copyright (C) 1994-1995 Benjamin Lin.
dos2unix comes with NO WARRANTY, to the extent permitted by law.
You may redistribute copies of dos2unix under the terms of the GNU
General Public License. For more information about these matters,
see the file named COPYING.
Lệnh dos2unix
là một phần của gói tofrodos
, đã được cài đặt trong môi trường Ubuntu 22.04 của bạn.
Chuyển đổi tệp văn bản từ định dạng DOS sang Unix
Trong bước này, bạn sẽ học cách sử dụng lệnh dos2unix
để chuyển đổi các tệp văn bản từ định dạng DOS/Windows sang định dạng Unix/Linux.
Trước tiên, hãy tạo một tệp văn bản mẫu ở định dạng DOS:
echo "This is a sample text file in DOS format." > sample_dos.txt
Bây giờ, hãy sử dụng lệnh dos2unix
để chuyển đổi tệp:
dos2unix sample_dos.txt
Ví dụ đầu ra:
dos2unix: converting file sample_dos.txt to Unix format ...
Lệnh dos2unix
đã sửa đổi tệp tại chỗ, loại bỏ các ký tự carriage return và chuyển đổi tệp sang định dạng Unix.
Hãy xác minh nội dung của tệp:
cat sample_dos.txt
Ví dụ đầu ra:
This is a sample text file in DOS format.
Như bạn có thể thấy, tệp hiện sử dụng ký tự kết thúc dòng Unix (LF) thay vì ký tự kết thúc dòng DOS (CR+LF).
Bạn cũng có thể chỉ định một tệp đầu ra để lưu tệp đã chuyển đổi với một tên khác:
dos2unix sample_dos.txt sample_unix.txt
Thao tác này sẽ tạo một tệp mới sample_unix.txt
với định dạng Unix, trong khi vẫn giữ nguyên tệp sample_dos.txt
gốc.
Tự động hóa chuyển đổi dos2unix bằng Shell Scripts
Trong bước này, bạn sẽ học cách tự động hóa quá trình chuyển đổi các tệp văn bản từ định dạng DOS sang Unix bằng cách sử dụng shell scripts.
Hãy tạo một shell script đơn giản để chuyển đổi tất cả các tệp .txt
trong thư mục hiện tại:
#!/bin/bash
for file in *.txt; do
if [ -f "$file" ]; then
echo "Converting $file to Unix format..."
dos2unix "$file"
fi
done
echo "DOS to Unix conversion complete."
Lưu script này dưới dạng convert_to_unix.sh
trong thư mục ~/project
.
Bây giờ, hãy làm cho script có thể thực thi:
chmod +x ~/project/convert_to_unix.sh
Bây giờ bạn có thể chạy script để chuyển đổi tất cả các tệp .txt
trong thư mục hiện tại:
~/project/convert_to_unix.sh
Ví dụ đầu ra:
Converting sample_dos.txt to Unix format...
dos2unix: converting file sample_dos.txt to Unix format ...
DOS to Unix conversion complete.
Script sử dụng vòng lặp for
để lặp qua tất cả các tệp .txt
trong thư mục hiện tại, sau đó gọi lệnh dos2unix
trên mỗi tệp để chuyển đổi nó sang định dạng Unix.
Bạn có thể tùy chỉnh script để xử lý các phần mở rộng tệp khác nhau hoặc thậm chí để chuyển đổi đệ quy các tệp trong các thư mục con. Ngoài ra, bạn có thể thêm xử lý lỗi và ghi nhật ký để làm cho script mạnh mẽ hơn.
Tóm tắt
Trong lab này, bạn đã tìm hiểu về lệnh dos2unix, được sử dụng để chuyển đổi các tệp văn bản từ định dạng DOS/Windows sang định dạng Unix/Linux. Bạn đã tạo một tệp văn bản mẫu ở định dạng DOS và sử dụng lệnh dos2unix để chuyển đổi nó sang định dạng Unix. Bạn cũng đã học cách tự động hóa quá trình chuyển đổi dos2unix bằng cách sử dụng shell scripts.
Lệnh dos2unix là một công cụ đơn giản và hiệu quả để giải quyết vấn đề về sự khác biệt kết thúc dòng giữa các hệ thống Windows và Unix-like. Nó loại bỏ các ký tự carriage return và chuyển đổi tệp sang định dạng Unix. Bạn đã khám phá việc sử dụng lệnh dos2unix và xác minh nội dung của tệp đã chuyển đổi.