Ký tự | trong shell có nghĩa là gì?

Câu hỏi như tiêu đề ạ, e thấy có nhiều câu lệnh như thế này:
cat file1 | wc | cat > file2
cat file1 | sort > file2
nhưng lại ko hiểu cái ký tự | đó dùng để làm gì, trên codecademy nó nói vắn tắt quá :frowning:
Nên trên diễn đàn có ai rành về khoản này hướng dẫn cho e vs ạ, hoặc 1 tut tiếng Việt giải thích kỹ càng cũng đc, e tìm trên GG mà ko ra :((
Thanks you guys veryyy much :blush:

Kết hợp nhiều lệnh thôi

2 Likes

Anh có thể nói rõ hơn được ko ạ, em chưa hiểu lắm. Ví dụ như 2 commands ở trên?

Nó được gọi là pipe. Giống như cái đường ống ấy, output của lệnh bên trái sẽ được truyền vào lệnh phía sau

Bạn có xem giải thích đoạn lệnh trên tại explainshell.com

2 Likes

Anh có thể nói rõ hơn nữa được ko? Còn link kia thì em ko từ chối nhưng vốn từ tiếng Anh của em chưa được tốt lắm :slight_smile:

đọc file , sap xếp rồi ghi vao file 2

đọc file1 rồi wc gi đó (chưa dung wc :p)

1 Like

sort nhận tham số là 1 file. Trong khi đó, cat file đã lấy ra nội dung của file, nếu vậy thì sao sort vẫn có tác dụng anh nhỉ?

Em chưa hiểu lắm @@

chưa dung wc
Là nhà vệ sinh thôi mà @_@!

do thằng | đó
http://www.linfo.org/vertical_bar_character.html

ý là anh chưa dùng lệnh đó

gõ lệnh đó là đi vệ sinh được hả =)). Thần bí vậy

1 Like

Link đầu là link google tiếng Việt nhé.

cat file1 | wc | cat > file2
  1. cat file1 lệnh cat ở đây là nối các file và in ra màn hình, ở đây có 1 file thì nó in ra nội dung của file1 luôn, tuy nhiên ký tự đằng sau là pipe | nên cái output (tức là nội dung của file1 do lệnh cat lấy ra) sẽ được chuyển hướng và trở thành input của lệnh phía sau, lệnh wc
  2. wc == words count, đếm từ, tuy nhiên output của lệnh này sẽ gồm 3 cột (phân tách bởi dấu tab), cột đầu tiên là số lượng dòng trong input, cột 2 là số lượng từ, cột 3 là số bytes. Tương tự theo sau là | nên output của wc sẽ trở thành input của lệnh cat phía sau.
  3. Theo sau lệnh cat là ký tự > nó được dùng để chuyển hướng ouput của lệnh cat vào file2, tức là lưu vào file2 thay vì in ra màn hình.

Tóm lại 2 cái |> dùng để chuyển hướng input / output.
Bonus cho bạn cái link. Cơ mà mình khuyên là nên học tiếng anh trước.

3 Likes

Thanks anh nhiều lắm ^^ em hiểu zồi :smiley:

83% thành viên diễn đàn không hỏi bài tập, còn bạn thì sao?