说我有:
$ cat tmp1.txt
a
b
c
然后
$ paste tmp1.txt <(tr '[:lower:]' '[:upper:]'<tmp1.txt)
a A
b B
c C
我将如何将以上内容修改为
1/ 只调用tmp1.txt
一次?(我怀疑tee
)
2/ 提供tmp1.txt
来自终端的内容(就像由命令的输出产生的一样)。为此,我试图对此进行修补,但并没有走得太远:
$ cat<< 'EOF' | tee >(tr '[:lower:]' '[:upper:]')
a
b
c
EOF
输出:
a
b
c
A
B
C
tee
使用命名管道为和之间的数据创建附加通道tr
:或者(但不那么好看),将 移动
tr
到左侧|
:您需要额外的命名管道才能提供由
tr
to转换的数据paste
。该paste
实用程序需要读取两个流,即原始数据和转换后的数据。其中一个可以是标准流,而另一个需要来自原始文件(第二次读取文件)或命名管道,如上所示。使用awk的简单解决方案
或者
或通过使用命名管道或先进先出