/ / 9 Ví dụ thực tế về Lệnh cắt trong Linux

9 Ví dụ thực tế về Lệnh cắt trong Linux

Hệ điều hành dựa trên Linux cung cấp nhiều tiện ích xử lý văn bản dòng lệnh mà bạn có thể sử dụng trong thói quen hàng ngày của mình. Lệnh cắt là một trong những tiện ích thao tác văn bản như vậy sử dụng dấu phân cách, byte, trường và cột để tìm nạp một chuỗi bắt buộc từ cơ sở dữ liệu tệp phẳng hoặc một dòng.

Vì cơ sở dữ liệu tệp phẳng không có mối quan hệ cấu trúc và các bản ghi được phân tách với sự trợ giúp của dấu phân cách, nên cut là một công cụ lý tưởng để trích xuất các ký tự hoặc byte thông tin. Bài viết này thảo luận chi tiết về lệnh cắt và trình bày một số ví dụ thực tế với các tùy chọn bộ lọc khác nhau để giúp bạn bắt đầu với công cụ.

Tổng quan về Lệnh cắt

cut sử dụng cú pháp cơ bản sau:

cut <option> <file>

Bạn cũng có thể đặt nó bằng các lệnh khác như sau:

echo “string_of_characters” | cut <options>

Xin lưu ý rằng sự vắng mặt của bất kỳ tùy chọn nào sẽ tạo ra lỗi. Dưới đây là một số cờ bạn có thể sử dụng với cut để gọi các chức năng khác nhau của nó:

Lựa chọn Sự miêu tả
-b Cắt theo vị trí byte
-C Cắt theo vị trí ký tự
-d Trích xuất chuỗi bằng cách sử dụng dấu phân cách được chỉ định với tùy chọn trường (-f)
-f Trích xuất theo một trường cụ thể
-S Trích xuất chỉ cho dấu phân cách
–bổ sung In đầu ra ngoại trừ trường mà bạn đã chỉ định
–output-delimiter Thay thế dấu phân cách hiện có bằng dấu bạn đã chỉ định

Dưới đây là một số ví dụ về lệnh cắt sẽ giúp bạn hiểu rõ hơn về công cụ và các chức năng của nó.

Sử dụng -b tùy chọn để tìm nạp các chuỗi ký tự theo số byte của chúng, như sau:

echo "Hello World" | cut -b 1,2,3,5,8,9

Đầu ra:

Heloor

Bạn cũng có thể chỉ định một đường dẫn tệp thay vì một chuỗi:

cut -b 1,2,3,4,5 filename.txt

Hoặc bạn có thể trích xuất các ký tự theo vị trí của chúng trong văn bản. Sử dụng -C theo sau là trình tự / thứ tự các ký tự bạn cần tìm nạp như sau:

echo "Hello World" | cut -c 1,2,3,5,6,8,10,11

Đầu ra:

Helo old

Tương tự, để tìm nạp các trường hoặc cột từ cơ sở dữ liệu tệp phẳng, hãy sử dụng lệnh cut với -f tùy chọn cờ:

cut -f 3 database.txt

Cắt theo lĩnh vực

2. Cắt phạm vi byte hoặc ký tự

Bạn cũng có thể sử dụng -b gắn cờ bằng lệnh cut để trích xuất và in nhiều dải byte như sau:

cut -b 1-7,16-23 database.txt

Cắt theo phạm vi byte

Bạn có thể xác định phạm vi để tìm nạp các ký tự bằng cách sử dụng -C cờ như sau:

cut -c 1-7,16-23 database.txt

Cắt theo phạm vi ký tự

Sử dụng -cn- tùy chọn trích xuất văn bản từ ký tự thứ n trở đi đến cuối dòng, trong đó n là chỉ số của một ký tự trong chuỗi.

Ví dụ: để trích xuất chuỗi bắt đầu từ ký tự thứ sáu đến cuối dòng:

cut -c6- database.txt

Cắt bắt đầu cho đến khi kết thúc

Hoặc sử dụng lệnh sau để tìm nạp từ đầu đến cuối m các ký tự từ tệp:

cut -c-8 database.txt

4. Cắt nhiều trường từ một tệp

Bạn cũng có thể in nhiều trường từ một tệp bằng cách sử dụng -f lá cờ.

cut -f 1,2 database.txt

Đầu ra:

NAME AGE 
Jhon 20
Lisa 24
Jack 18
Bruce 23
Nancy 19

Bạn có thể dùng -d cờ để chỉ định dấu phân cách với -f lựa chọn. Dấu phân tách chỉ định ký tự được sử dụng để phân tách các trường trong tệp văn bản.

Ví dụ: để trích xuất cột đầu tiên của tệp / etc / passwd, hãy sử dụng dấu hai chấm (:) làm dấu phân cách:

cut -d ‘:’ -f 1 /etc/passwd

Cắt bằng dấu phân cách và trường

Tương tự, giá trị dấu phân cách trong dòng văn bản nhất định là một khoảng trắng:

echo "The 1% of the 1%" | cut -d ' ' -f 2,3

Đầu ra:

1% of

6. Thay đổi Dấu phân cách đầu ra cho màn hình

Các –output-delimiter cờ thêm tính linh hoạt cho đầu ra lệnh cắt. Ví dụ: bạn có thể sử dụng cờ để hiển thị đầu ra trong một dòng riêng biệt bằng cách sử dụng $ ‘ n’ (dòng mới), như sau:

grep alice /etc/passwd | cut -d ':' -f 1,5,7 --output-delimiter=$'⁠n'

Đầu ra:

alice
Alice
/bin/sh

Hơn nữa, bạn cũng có thể thay thế dấu phân cách của tệp đầu vào bằng dấu phân cách bạn chọn trong đầu ra bằng cách sử dụng –output-delimiter lá cờ:

grep root /etc/passwd | cut -d ':' -f 1,6,7 --output-delimiter=@

Đầu ra:

root@/root@/bin/bash
nm-openvpn@/var/lib/openvpn/chroot@/usr/sbin/nologin

7. Cắt các trường chỉ khi một dòng chứa dấu phân cách

Sử dụng -S cờ để trích xuất các trường chỉ khi các dòng chứa dấu phân cách. Ví dụ: lệnh sau sẽ không tìm nạp trường -f 1 trừ khi nó có dấu phân cách:

echo "HelloWorld" | cut -d " " -f 1 -s

Ngược lại, lệnh được đề cập bên dưới sẽ tạo ra một đầu ra là chuỗi chứa dấu phân cách được chỉ định:

echo "Hello World" | cut -d " " -f 1 -s

Đầu ra:

Hello

Tương tự, bạn cũng có thể sử dụng bất kỳ ký tự nào khác làm dấu phân cách:

echo "Hello:World" | cut -d ":" -f 2 -s

Đầu ra:

World

8. Bổ sung đầu ra lệnh

Tiện ích cắt cũng cho phép bạn in tất cả các trường ngoại trừ trường được chỉ định. Sử dụng –bổ sung tùy chọn như sau để tìm nạp tất cả các chi tiết của tài khoản người dùng gốc ngoại trừ cột thứ năm:

grep "root" /etc/passwd | cut -d ':' --complement -s -f 5

Đầu ra:

root:x:0:0:/root:/bin/bash

Tương tự, trong ví dụ dưới đây, -f 1 tham số phải hiển thị xin chào văn bản tuy nhiên, do –bổ sung tùy chọn, nó chỉ in phần còn lại của nó.

echo "Hello to the whole World" | cut -d " " -f 1 --complement

Đầu ra:

to the whole World

9. Cắt ống với Tiện ích Sed

Phần tốt nhất là bạn có thể kết hợp lệnh cắt với đầu ra tiêu chuẩn của các lệnh Linux / Unix khác.

sed là một trong những công cụ chỉnh sửa văn bản mà bạn có thể sử dụng để xóa, chèn và thay thế văn bản của mình. Bạn có thể dễ dàng chuyển đầu ra của nó tới lệnh cắt.

Trong ví dụ dưới đây, đầu ra lệnh grep được chuyển đến tiện ích sed thay thế dấu hai chấm (:) bằng dấu gạch ngang (-) và sau đó, cut hiển thị các trường 1, 6 và 7 như sau:

grep alice /etc/passwd | sed 's/:/-/g' | cut -d ' ' -f 1,5,7

Đầu ra:

alice-x-1005-1008-Alice-/home/new/alice-/bin/sh

Làm việc với văn bản trên Linux bằng cách sử dụng cut

Lệnh cắt là một tiện ích dòng lệnh linh hoạt và hiệu quả mà bạn có thể sử dụng trong các trường hợp sử dụng khác nhau của thao tác văn bản. Nó sử dụng các hoạt động để lọc ra văn bản từ các tệp hoặc dữ liệu đầu vào tiêu chuẩn. Tiện ích này cũng có một ưu điểm là người dùng có thể giới hạn văn bản mà họ muốn hiển thị và thêm các dấu phân cách theo ý họ.

Tuy nhiên, lệnh này cũng có một số hạn chế. Bạn không thể sử dụng biểu thức chính quy để chỉ định dấu phân cách hoặc sử dụng nhiều tùy chọn lệnh cắt đồng thời. Bài viết này bao gồm các ví dụ thực tế từ cơ bản đến nâng cao về tiện ích này để giúp người mới bắt đầu hiểu rõ về các lệnh thao tác văn bản trên Linux.


các lệnh thao tác văn bản tốt nhất trên linux
5 lệnh thao tác văn bản hữu ích nhất trên Linux

Bạn muốn nâng cấp trò chơi Linux của mình và tìm hiểu thêm về thao tác văn bản? Dưới đây là năm công cụ dòng lệnh Linux hàng đầu để bắt đầu hành trình của bạn.

Đọc tiếp


Giới thiệu về tác giả

Similar Posts

Leave a Reply

Your email address will not be published. Required fields are marked *