粘贴:将子外壳的输出粘贴到管道的传入内容中

问题描述 投票:1回答:1

假设我执行以下do工作的命令:

seq 1 100 >  x
cat y_data | paste x /dev/stdin

现在,我要执行以下操作:

cat y_data | paste $(seq 1 100) /dev/stdin

但是,我处于猜测和检查模式,具有各种重定向排列。有没有办法对粘贴进行此子Shell重定向?

bash command-line-interface paste
1个回答
1
投票

paste接受文件名。您需要一些可以视为文件名的内容,并且在读取时会产生seq 1 100的输出。

创建真实文件是一种方法。另一个是流程替换

cat y_data | paste <(seq 1 100) /dev/stdin | less

[<(...)将由Bash设置的管道的文件名替换,打开此文件名进行读取将读取命令的输出:

$ echo <(seq 1 3)
/dev/fd/63

$ cat <(seq 1 3)
1
2
3

您可以类似地使用>(...)创建可以写入的文件名,以将数据通过管道传递到命令的stdin。

© www.soinside.com 2019 - 2024. All rights reserved.