如何在一个pipline中捕获两次文件

时间:2016-03-16 00:10:03

标签: linux bash shell scripting

我很好奇如何使用以:

开头的管道连续两次捕获文件
cat file | 

管道后面会有什么内容,以便"文件"会连续打印两次吗?

谢谢

2 个答案:

答案 0 :(得分:3)

有很多方法可以对cat ...

进行换肤

你可以这样做:

cat file file

如果file包含文本 hello world

输出结果为:

  

你好世界   你好世界

使用相同结果执行此操作的另一种方法是:

cat file <(cat file)

如果必须以cat file |开头,那么这也可行:

cat file | cat file file

或者你甚至可以这样做:

cat file | cat - file

然而,更有趣的方法是tee这是一个管道配件。从BSD通用命令手册:

  

tee实用程序将标准输入复制到标准输出,将副本复制为零个或多个文件。输出是无缓冲的。

所以你可以这样做:

cat file | tee /dev/tty

答案 1 :(得分:1)

对我来说,

cat file | cat file file

似乎不满足问题的精神。我会选择像:

cat file | tee /dev/tty