Cơ bản về thao tác với dữ liệu text trên Linux
Bài đăng này đã không được cập nhật trong 3 năm
Lời mở đầu
Text - một cái tên không còn xa lạ gì trong giới lập trình viên. Text mang nghĩa là bản văn, một tập hợp của nhiều câu, mỗi câu lại gồm nhiều từ, mỗi từ gồm nhiều ký tự. Tùy theo từng ngôn ngữ mà các ký tự được thể hiện khác nhau. Việc xử lý những dữ liệu dạng text này luôn có trong hầu hết các ngôn ngữ lập trình, và nổi lên nhất là trong các ngôn ngữ thông dịch như Perl, Python, Ruby ....
Tuy nhiên, trong một hệ thống Linux, để đơn giản hóa quá trình xử lý dữ liệu văn bản, các nhà phát triển đã tạo ra các công cụ cơ bản để xử lý dữ liệu text trên tiêu chí một chương trình chỉ làm một việc nhưng sẽ làm việc đó một cách tốt nhất có thể. Và trên hết là các chương trình này đều không yêu cầu kỹ năng lập trình nhưng vẫn có thể dễ dàng sử dụng được. Sau đây mình xin phép được trình bày về một số chương trình(lệnh) giúp cho việc xử lý dữ liệu văn bản được thuận tiện hơn trong hệ thống Linux.
Lệnh "cat"
Là một trong những lệnh cơ bản nhất của một hệ thống Linux. Lệnh này có thể dùng để tạo, chèn, hiển thị và ghép nội dung của file.
- Để tạo file dùng cú pháp như sau:
$ cat > simple.txt << "EOF"
This is the first line
This is the second line
EOF
EOF là ký tự được khai báo và dùng để kết thúc việc nhập liệu, có thể sử dụng một chuỗi bất kỳ thay thế. Trong trường hợp file simple không tồn tại thì một file mới sẽ được tạo với nội dung nhập vào như trên. Nếu không thì file simple.txt sẽ bị ghi đè với nội dung mới. Để tránh việc ghi đè dữ liệu có thể dùng cat >> thay cho cat > để dữ liệu tự động được chèn vào cuối file.
$ cat >> simple.txt << "EOF"
This is the third line
EOF
- Nếu dùng cú pháp
cat filename
thì nội dung file filename sẽ được hiển thị.
$ cat simple.txt
This is the first line
This is the second line
This is the third line
- Ngoài ra có thể dùng phối hợp việc hiển thị và chèn để ghép nội dung của 1 file vào cuối 1 file khác. VD:
$ cat simple1.txt >> simple2.txt
Lệnh "wc"
wc
có nghĩa là wordcount, lệnh này đơn giản chỉ dùng để thống kê lượng dữ liệu có trong file- Cú pháp đơn giản nhất là
wc filename
VD:
wc simple.txt
3 15 70 simple.txt
Giá trị thứ nhất là số dòng (line), giá trị thứ 2 là số từ (word), giá trị thứ 3 là số ký tự (character) và cuối cùng là tên file.
Lệnh "grep"
- Dùng để hiện thị những dòng có một phần nội dung nào đó VD:
$ grep "line" simple.txt
This is the first line
This is the second line
This is the third line
- Hoặc có thể dùng tùy chọn -c để đếm số lần xuất hiện thay vì in hết ra VD:
$ grep -c "line" simple.txt
3
- Một số tùy chọn khác
-i
không phân biệt hoa thường-l
chỉ hiển thị tên file chứa nội dung cần tìm-n
kèm theo số thứ tự của dòng xuất hiện
Lệnh "head" và lệnh "tail"
- Hai lệnh
head
vàtail
có cách sử dụng tương tự nhau, đều là lấy ra một phần bản văn của file. Chỉ khác là lệnhhead
lấy phần bản văn ở đầu file còntail
lấy phần cuối bản văn. VD:head -n4 filename
sẽ lấy ra 4 dòng đầu tiên của file filenametail -n8 filename
sẽ lấy ra 8 dòng cuối của file filename - Ngoài ra có thể sử dụng -c thay cho -n để lấy dữ liệu tính theo ký tự thay vì tính theo dòng.
Lệnh "sort"
- Dùng để sắp xếp các dòng dữ liệu bản văn trong file VD:
$ sort simple.txt
This is the first line
This is the second line
This is the third line
- Ngoài ra có thể dùng thêm các tùy chọn sau
-u
bỏ qua các giá trị trùng lặp-r
sắp xếp theo thứ tự giảm dần (mặc định sẽ là tăng dần)-f
không phân biệt hoa thường
Lời kết
Trên đây chỉ là một số lệnh cơ bản nhất dùng để thao tác với dữ liệu text trên Linux. Vẫn còn rất nhiều lệnh hữu ích khác như cut
, sed
, awk
... nhưng do khả năng của mình có hạn nên mình sẽ tìm hiểu và bổ sung các lệnh này trong các bài viết tiếp theo.
Xin cảm ơn mọi người đã theo dõi bài viết.
References
All rights reserved