Cách dùng lệnh tr, tee, wc, cut Image Cách dùng lệnh tr, tee, wc, cut

Bài viết này giới thiệu các bạn về cách dùng lệnh tr, tee, wc, cut trên hệ điều hành Linux.

1. Lệnh tr

Lệnh tr là một tiện ích được sử dụng trên hệ điều hành Linux giúp chúng ta dịch, xóa các ký tự. Cú pháp chung như sau:

tr [tuỳ chọn] [set1] [set2]

Trong đó:

  • set1: Liệt kê các ký tự trong văn bản phải được thay thế hoặc loại bỏ.
  • set2: Liệt kê các ký tự sẽ được thay thế cho các ký tự liệt kê trong set1.

Để xem các tùy chọn của lệnh tr chúng ta thực hiện lệnh sau: man tr

Để hiểu về các chức năng của lệnh tr chúng ta thực hiện các ví dụ sau.

Ví dụ 1: Chuyển chữ thường thành chữ hoa sử dụng lệnh tr.

[root@test1 ~]# cat file.txt
Roses are red,
Violets are blue,
Sugar is sweet,
And so are you.
[root@test1 ~]# cat file.txt | tr abcdefghijklmnopqrstuvwxyz ABCDEFGHIJKLMNOPQRSTUVWXYZ
ROSES ARE RED,
VIOLETS ARE BLUE,
SUGAR IS SWEET,
AND SO ARE YOU.

Ví dụ 2: Chuyển khoảng trắng(space) thành tab.

[root@test1 ~]# echo "This is for test " | tr [:space:] '\t'
This    is      for     test

Ví dụ 3: Chuyển từ tab thành khoảng trắng.

[root@test1 ~]# echo "This    is    for    test" | tr -s [:space:]
This is for test

Ví dụ 4: Xoá kí tự cần xoá,kí tự đã được chỉ dịnh sử dụng tùy chọn -d.

[root@test1 ~]# echo "This is for test" | tr -d 't'
This is for es

Ví dụ 5: Lọc chữ số cần tìm trong chuỗi dùng tuỳ chọn -c.

[root@test1 ~]# echo "my username is 432234" | tr -cd [:digit:]
432234

Ví dụ 6: Nối tất cả các dòng trong một tệp thành một dòng.

[root@test1 ~]# cat file.txt
Roses are red,
Violets are blue,
Sugar is sweet,
And so are you.
[root@test1 ~]# tr -cd [:print:] < file.txt
Roses are red,Violets are blue,Sugar is sweet,And so are you.
[root@test1 ~]# cat file.txt
Roses are red,
Violets are blue,
Sugar is sweet,
And so are you.
[root@test1 ~]# tr -s '\n' ' ' < file.txt
Roses are red, Violets are blue, Sugar is sweet, And so are you.

2. Lệnh tee

Lệnh tee có chức năng là đọc nội dung từ STDIN (standard input) và xuất ra STDOUT (standard output) và ghi vào file. Cú pháp cơ bản là:

tee [tùy chọn] file

Để xem các tùy chọn của lệnh tee chúng ta thực hiện lệanh sau: man tee

Để hiểu về các chức năng của lệnh tee chúng ta thực hiện các ví dụ sau.

Ví dụ 1: Sao chép đầu vào từng file và cả đầu ra

[root@test1 ~]# cat file.txt
[root@test1 ~]# echo "example" | tee file.txt
example
[root@test1 ~]# cat file.txt
example

Ví dụ 2: Nối vào các file đã cho, không ghi đè

[root@test1 ~]# cat file.txt
example
[root@test1 ~]# echo "example-1" | tee -a file.txt
example-1
[root@test1 ~]# cat file.txt
example
example-1

In đầu vào đến thiết bị đầu cuối, và cũng đưa nó vào một chương trình khác để xử lý thêm:

[root@test1 ~]# cat file.txt
example
example-1
[root@test1 ~]# echo "example-2" | tee file.txt | xargs printf "[%s]"
[example][root@test1 ~]# cat file.txt
example-2

3. Lệnh wc

Lệnh wc dùng đến từ, byte hoặc dòng. Cú pháp của lệnh wc

wc [tùy chọn] file

Các tùy chọn phổ biến của lệnh wc thông qua bảng sau:

Tùy chọnChức năng
-lHiển thị số lượng dòng
-cHiển thị số lượng byte
-wHiển thị số lượng từ

Các chức năng của lệnh wc:

  • Đếm các dòng trong tệp

    wc -l file
    
  • Đếm số từ trong tệp

    wc -w file
    
  • Đếm các ký tự (byte) trong tệp

    wc -c file
    

4. Lệnh cut

Lệnh cut được sử dụng thao tác với tệp dựa trên cột và được thiết kế để trích xuất các cột cụ thể. Dấu phân cách cột mặc định là ký tự tab

Chúng ta thực hiện các ví dụ về lệnh cut

Ví dụ 1: Cắt mười sáu ký tự đầu tiên của mỗi dòng STDIN:

[root@test1 ~]# echo "This is a filetest" | cut -c 1-16
This is a filete

Ví dụ 2: Cắt mười sáu ký tự đầu tiên của mỗi dòng của các tệp đã cho

[root@test1 ~]# cat file.txt
Roses are red, Violets are blue,
Sugar is sweet, And so are you.
[root@test1 ~]# cut -c 1-16 file.txt
Roses are red, V
Sugar is sweet,

Ví dụ 3: Cắt bỏ từ ký tự thứ 3 đến cuối mỗi dòng

[root@test1 ~]# cat file.txt
Roses are red, Violets are blue,
Sugar is sweet, And so are you.
[root@test1 ~]# cut -c 3- file.txt
ses are red, Violets are blue,
gar is sweet, And so are you.

Ví dụ 4: Cắt trường thứ 1 của mỗi dòng trong file

[root@test1 ~]# cat /etc/passwd
root:x:0:0:root:/root:/bin/bash
bin:x:1:1:bin:/bin:/sbin/nologin
daemon:x:2:2:daemon:/sbin:/sbin/nologin
adm:x:3:4:adm:/var/adm:/sbin/nologin
lp:x:4:7:lp:/var/spool/lpd:/sbin/nologin
[root@test1 ~]# cut -d':' -f1 /etc/passwd
root
bin
daemon
adm
lp