Khi làm việc trên dòng lệnh trong Linux, có thể phát sinh tình huống mà yêu cầu là thay thế các tab trong tệp bằng khoảng trắng. Nhiệm vụ này không khó nếu tệp nhỏ, nhưng nếu tệp bạn đang xử lý rất lớn hoặc tệ hơn, có hàng trăm tệp mà bạn phải thực hiện thay đổi này thì sao?
Đừng lo, có một công cụ dòng lệnh được xây dựng riêng cho công việc này. Công cụ được đề cập là expand và trong hướng dẫn này, chúng ta sẽ thảo luận về những điều cơ bản của expand bằng một số ví dụ dễ hiểu. Nhưng trước khi thực hiện, chúng ta nên chia sẻ rằng tất cả các lệnh và hướng dẫn được đề cập ở đây đều đã được thử nghiệm trên Ubuntu 16.04LTS.
Đây là cách trang hướng dẫn của công cụ định nghĩa lệnh này:
Các ví dụ theo kiểu Hỏi & Đáp sau đây sẽ giúp bạn hiểu rõ hơn về cách lệnh expand hoạt động.
Ví dụ:
Vậy là xong. Công cụ sẽ tạo ra nội dung của tệp trong đầu ra, với thay đổi duy nhất là khoảng trắng thay vì tab. Lưu ý rằng trong trường hợp bạn muốn thực hiện thay đổi như vậy trong nhiều tệp, chỉ cần truyền tất cả tên tệp trong đầu vào và tab sẽ được chuyển đổi thành khoảng trắng trong tất cả các tệp cùng một lúc.
Tất nhiên, bạn có thể dễ dàng chuyển đầu ra sang một số tệp khác bằng toán tử chuyển hướng.
Ví dụ, trong trường hợp của chúng tôi, các tab được chuyển đổi thành 4 khoảng trắng theo mặc định. Vì vậy, để giảm các khoảng trắng này xuống còn 1, chúng tôi đã sử dụng lệnh sau:
Xin lưu ý rằng khi không có tệp nào được truyền làm đầu vào cho công cụ này hoặc bạn truyền dấu gạch nối '-' làm tên tệp, nội dung đầu vào sẽ được đọc từ đầu vào chuẩn (STDIN).
Đừng lo, có một công cụ dòng lệnh được xây dựng riêng cho công việc này. Công cụ được đề cập là expand và trong hướng dẫn này, chúng ta sẽ thảo luận về những điều cơ bản của expand bằng một số ví dụ dễ hiểu. Nhưng trước khi thực hiện, chúng ta nên chia sẻ rằng tất cả các lệnh và hướng dẫn được đề cập ở đây đều đã được thử nghiệm trên Ubuntu 16.04LTS.
Lệnh expand của Linux
Lệnh expand, như đã đề cập, cho phép bạn chuyển đổi tab thành khoảng trắng. Sau đây là cú pháp của lệnh:
Mã:
expand [OPTION]... [FILE]...
Mã:
Chuyển đổi tab trong mỗi FILE thành khoảng trắng, ghi vào đầu ra chuẩn. Nếu không có FILE hoặc khi FILE là -,
hãy đọc đầu vào chuẩn.
Câu hỏi 1. Làm thế nào để chuyển đổi tab thành khoảng trắng bằng lệnh expand?
Cách sử dụng cơ bản của expand rất đơn giản: truyền tên tệp (có chứa tab) làm đối số cho công cụ.Ví dụ:
Mã:
expand file1
Tất nhiên, bạn có thể dễ dàng chuyển đầu ra sang một số tệp khác bằng toán tử chuyển hướng.
Mã:
expand file1>file2
Câu 2. Làm thế nào để giới hạn tác động của expand chỉ đối với các tab đầu tiên?
Đôi khi, bạn chỉ muốn chuyển đổi các tab đứng trước các dòng và giữ nguyên các tab đứng sau các khoảng trắng. Lệnh expand cũng cho phép bạn thực hiện việc này, chỉ có điều bạn sẽ phải sử dụng tùy chọn dòng lệnh -i.
Mã:
expand -i file1
Câu hỏi 3. Làm thế nào để điều chỉnh số lượng khoảng trắng mà các tab được chuyển đổi thành?
Theo mặc định, expand chuyển đổi các tab thành số lượng khoảng trắng tương ứng. Tuy nhiên, nếu muốn, bạn có thể điều chỉnh số lượng khoảng trắng bằng tùy chọn dòng lệnh -t. Tùy chọn này yêu cầu bạn nhập số khoảng trắng mới.Ví dụ, trong trường hợp của chúng tôi, các tab được chuyển đổi thành 4 khoảng trắng theo mặc định. Vì vậy, để giảm các khoảng trắng này xuống còn 1, chúng tôi đã sử dụng lệnh sau:
Mã:
expand -t1 file1
Xin lưu ý rằng khi không có tệp nào được truyền làm đầu vào cho công cụ này hoặc bạn truyền dấu gạch nối '-' làm tên tệp, nội dung đầu vào sẽ được đọc từ đầu vào chuẩn (STDIN).