加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 服务器 > 安全 > 正文

bash – 从管道获取参数

发布时间:2020-12-16 01:20:54 所属栏目:安全 来源:网络整理
导读:考虑从管道获得结果: find . 现在我想在管道后面的第二个命令中访问实际管道(输入)然后例如打印两次. find . | printf $arg$argn#each filename would be printed twice per line 请注意,问题不是要求打印一次从管道获取两次,我知道如何使用bash for循环或
考虑从管道获得结果:
find .

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

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

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

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

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

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

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

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

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读