Linux căn bản - Bài 9: Lọc dữ liệu

Đây là bài 09 trong loạt bài “Linux căn bản”. Các bạn nên ghé qua nó một chút trước khi bắt đầu.

Một trong những ý tưởng bên dưới của Linux là mỗi một mục nên làm một thứ và chỉ một thứ, vì vậy chúng ta có thể dễ dàng liên kết những mục này lại với nhau. Nghĩ về nó như là những khối lắp ghép mà chúng ta có thể đặt chúng lại với nhau, tuy nhiên chúng ta chỉ xây dựng những thứ mà chúng ta muốn. Trong phần này và phần tới chúng ta sẽ học một vài khối lắp ghép này. Sau đó trong mục 11 và 13 chúng ta sẽ xem làm thế nào để chúng ta có thể lắp ghép chúng với nhau tạo thành một khối phức tạp hơn mà có thể làm những công việc hữu ích cho chúng ta.

Trang này rất dài nhưng hầu hết là những ví dụ vì thế nó không đáng sợ như chúng ta thấy.

Vậy chúng là gì?

Một bộ lọc, trong ngữ cảnh là dòng lệnh Linux, là một chương trình chấp nhận dữ liệu text và sau đó chuyển thể nó theo một cách nào đó. Những bộ lọc là cách để lấy dự liệu thô, cũng như là được xuất ra bởi các chương trình, lưu trữ nó trong một file, xử lý nó để hiển thị theo cách thích hợp hơn để làm những gì mà chúng ta muốn.

These filters often have various command line options that will modify their behaviour so it is always good to check out the man page for a filter to see what is available.

In the examples below we will be providing input to these programs by a file but in the section Piping and Redirection we’ll see that we may provide input via other means that add a lot more power.

Let’s dive in and introduce you to some of them. (remember, the examples here will only give you a taste of what is possible with these commands. Make sure you explore and use your creativity to see what else you may do with them.)

I won’t go into too much detail on these. I think they are pretty self explanatory for the most part.

For each of the demonstrations below I will be using the following file as an example. This example file contains a list of content purely to make the examples a bit easier to understand but realise that they will work the same with absolutely any other textual data. Also, remember that the file is actually specified as a path and so you may use absolute and relative paths and also wildcards.

tail

sort

nl

wc

cut

sed

uniq

tag