01/10/2018, 08:58

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á
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

Nguyen Ca viết 11:04 ngày 01/10/2018

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

Long Dragon viết 11:04 ngày 01/10/2018

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

Ice Tea viết 11:11 ngày 01/10/2018

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

Long Dragon viết 11:11 ngày 01/10/2018

output của lệnh bên trái sẽ được truyền vào lệnh phía sau

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

Nguyen Ca viết 11:01 ngày 01/10/2018

cat file1 | sort > file2

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

cat file1 | wc | cat > file2

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

Long Dragon viết 11:00 ngày 01/10/2018

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

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ỉ?

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

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

Tao Không Ngu. viết 11:12 ngày 01/10/2018

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

Nguyen Ca viết 10:59 ngày 01/10/2018

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

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

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

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

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

Ice Tea viết 11:13 ngày 01/10/2018

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.

Long Dragon viết 11:00 ngày 01/10/2018

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

Bài liên quan
0