21. 管道 - 使用其他命令的执行结果

开篇词

结合管道(|)符号,我们可以将一个程序的输出作为当前输入的初始数据。
 

管道符号

一个基于场景的问题

我们假设有一个叫 fresh_file 的文件,里面持有两行文本:

cat fresh_file

打印 fresh_file 内容
该文件只有两行文本,所以行数是比较容易看到的,但万一我们需要统计的文件有很多内容呢?我们怎样快速并高效地获取文本文件里的行数呢?

统计文件内容的行数

我们可以将 cat 命令的输出通过 Shell 的管道特性传输至 wc 命令里,并将它作为 wc 命令的初始数据:

cat fresh_file | wc -l

将打印的输出传给 wc 命令以统计文件内容的行数

统计文件内容的词量

cat fresh_file | wc -w

将打印的输出传给 wc 命令以统计文件内容的词量

统计文件内容的字数

cat fresh_file | wc -c

将打印的输出传给 wc 命令以统计文件内容的字数

连续管道

Bash 支持多管道背对背的执行:

cat fresh_file | wc -c | wc -l

管道将从左至右逐一执行每个命令。每个后续命令都要能够接收来自前一个命令的执行结果
 

我所撰写的英文版本

21. Pipelines - Use Other Commands’ Running Results
 

引用

参见

想看手册的其他内容?请访问该手册的所属专栏:《Linux 管理员手册:既简单又深刻

扫描二维码关注公众号,回复: 8788490 查看本文章
发布了77 篇原创文章 · 获赞 6 · 访问量 1624

猜你喜欢

转载自blog.csdn.net/stevenchen1989/article/details/104047358
21.
今日推荐