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.