Thursday, November 21, 2024

Cut trong Linux

-

Câu lệnh cut trong Linux là một công cụ mạnh mẽ để cắt và trích xuất các cột từ các file văn bản hoặc đầu vào từ đường ống (pipe). Dưới đây là các tip để sử dụng cut hiệu quả:

  1. Cắt các cột từ file:

Để cắt một số cột từ một file văn bản, chúng ta có thể sử dụng tùy chọn -f để chỉ định các số cột muốn trích xuất. Ví dụ: để cắt cột thứ 2 và thứ 3 từ một file có tên là file.txt, ta sử dụng lệnh sau:

cut -f 2,3 file.txt
  1. Cắt các cột từ đầu vào từ đường ống:

Ngoài việc cắt các cột từ file, cut cũng có thể cắt các cột từ đầu vào từ đường ống bằng cách sử dụng tùy chọn - để chỉ định đầu vào từ đường ống. Ví dụ, để cắt cột thứ 1 và thứ 3 từ đầu vào từ đường ống, ta sử dụng lệnh sau:

echo "apple:orange:banana:grape" | cut -d ':' -f 1,3
  1. Cắt các ký tự từ một vị trí nhất định:

Để cắt các ký tự từ một vị trí nhất định, ta sử dụng tùy chọn -c. Ví dụ, để cắt ký tự từ vị trí thứ 2 đến vị trí thứ 5 từ một file văn bản có tên là file.txt, ta sử dụng lệnh sau:

cut -c 2-5 file.txt
  1. Sử dụng dấu phân cách khác nhau:

Mặc định, cut sử dụng dấu tab làm dấu phân cách để cắt các cột. Nếu muốn sử dụng dấu phân cách khác, ta sử dụng tùy chọn -d. Ví dụ, để cắt cột thứ 2 và thứ 3 từ một file văn bản có dấu phân cách là dấu cách, ta sử dụng lệnh sau:

cut -d ' ' -f 2,3 file.txt
  1. Cắt các dòng từ một file với các điều kiện nhất định:

Để cắt các dòng từ một file với các điều kiện nhất định trong Linux, ta có thể sử dụng lệnh grep kết hợp với lệnh cut.

Ví dụ: Ta có một file có tên là data.txt chứa thông tin như sau:

name|age|gender
Alice|20|female
Bob|30|male
Charlie|25|male
Diana|22|female

Bây giờ, nếu muốn cắt ra danh sách các tên người có giới tính là “female”, ta có thể sử dụng lệnh sau:

Giải thích:

  • grep "female" data.txt: Lọc ra các dòng chứa từ “female” từ file data.txt.
  • cut -d "|" -f 1: Cắt các giá trị trong các dòng đã lọc bởi ký tự “|” và chọn cột đầu tiên (ở đây là tên).

Kết quả sẽ trả về danh sách tên người có giới tính là “female”:

Alice
Diana
Previous article
Next article

LEAVE A REPLY

Please enter your comment!
Please enter your name here

4,956FansLike
256FollowersFollow
223SubscribersSubscribe
spot_img

Related Stories