[ShellScript] Hướng dẫn xoá các dòng trống trong văn bản text bằng shell script

Trong trường hợp bạn muốn xoá tất cả các dòng trắng không kí tự trong 1 văn bản text trên Linux thì sẽ làm thế nào ? Cùng điểm qua 4 cách cơ bản nhé .

1348

Khi mà các bạn lập trình shell script hay có nhu cầu sử thao tác xử lý text trên Linux, thì hẳn bạn sẽ gặp cái tình huống cơ bản đó là : cần xoá hết các dòng có khoảng trắng, không có nội dung trên dòng trong file text.

Ví dụ :

# cat demo.txt
abc

1

2

bc


cuongquach.

Vậy để làm cái chuyện đơn giản này chúng ta sẽ có 4 cách dễ dàng xử lý bằng dùng các công cụ lệnh hệ thống gồm :
+ grep
+ sed
+ awk
+ perl

1. Sử dụng lệnh “grep”

– Lệnh “grep” này tìm các dòng khoảng trắng trong file demo.txt . Thêm option “-v” thì sẽ là loại bỏ các dòng khoảng trắng khỏi kết quả tìm kiếm.
– Với “^” là pattern kiểm tra kí tự bắt đầu dòng, “$” là pattern kiểm tra kí tự đứng cuối dòng.

# grep '^$' demo.txt
abc
1
2
bc
cuongquach.

– Bạn có thể redirect kết quả ra 1 file khác chẳng hạn.

# grep '^$' demo.txt > demo2.txt

2. Sử dụng lệnh “sed”

– Công dụng cũng không khác gì ở trên nhé.

# sed '/^$/d' demo.txt
# sed '/^$/d' demo.txt > output.txt

 

3. Sử dụng lệnh “awk”

– Chức năng không khác là bao.

# awk 'NF > 0' demo.txt
# awk 'NF > 0' demo.txt > output.txt

 

4. Sử dụng lệnh “perl”

– Cấu trúc lệnh perl sau sẽ xoá sạch các dòng có khoảng trắng hay không có nội dung và lưu bản gốc lại thành “demo.txt.backup” để người quản trị tiện xử lý.

# perl -i.backup -n -e "print if /\S/" demo.txt
# cat demo.txt
# cat demo.txt.backup

 

Chà, đơn giản quá phải không nào. Cám ơn các bạn đã theo dõi.

Previous article[MySQL] Hướng dẫn khôi phục mật khẩu root dịch vụ MySQL
Next article[NexentaStor] Hướng dẫn truy cập root shell – Expert Mode NMC của hệ thống NexentaStor
Bạn đang theo dõi website "https://cuongquach.com/" nơi lưu trữ những kiến thức tổng hợp và chia sẻ cá nhân về Quản Trị Hệ Thống Dịch Vụ & Mạng, được xây dựng lại dưới nền tảng kinh nghiệm của bản thân mình, Quách Chí Cường. Hy vọng bạn sẽ thích nơi này !

LEAVE A REPLY

Please enter your comment!
Please enter your name here