bash – 从管道获取参数

前端之家收集整理的这篇文章主要介绍了bash – 从管道获取参数前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
考虑从管道获得结果:
find .

现在我想在管道后面的第二个命令中访问实际管道(输入)然后例如打印两次.

find . | printf $arg$arg\n
#each filename would be printed twice per line

请注意,问题不是要求打印一次从管道获取两次,我知道如何使用bash for循环或编写可以完成上述操作的脚本.如何让$arg在内联脚本中快速使用它?

$0和$1不像脚本文件那样工作.

简答:您可以使用sed打印每个文件两次:
find . | sed 's/.*/& &/'

Sed可以在输入时编辑行.上面的命令说s(替换).*(整行)& &安培; (与自己,两次).

更长的答案:当您将一个程序传送到另一个程序时,您将第一个程序的标准输出流连接到第二个程序的标准输入流.第一个程序打印的任何内容都将被视为第二个程序的输入.

不幸的是,对于您的示例,输入不是逐行排列的块,它很好地映射到假设的$args变量.它有一个巨大的整体流.如果你想打印两次流的每一行,你可以使用sed(这是一个Stream EDitor),但它只是逐行替换.

猜你在找的Bash相关文章