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

用于Unix命令管道的惯用语模拟Ruby的’Object#tap`?

发布时间:2020-12-15 21:46:11 所属栏目:安全 来源:网络整理
导读:对于Unix命令管道,Ruby的Object#tap是否有惯用的类比? 用例:在管道中我想为其副作用执行一个命令,但是隐式返回输入,以便不破坏管道的链接.例如: echo { 1,2,3 } | tr ' ' 'n' | sort | tap 'xargs echo' | # arbitrary code,but implicitly return the i
对于Unix命令管道,Ruby的Object#tap是否有惯用的类比?

用例:在管道中我想为其副作用执行一个命令,但是隐式返回输入,以便不破坏管道的链接.例如:

echo { 1,2,3 } |
  tr ' ' 'n' |
  sort |
  tap 'xargs echo' | # arbitrary code,but implicitly return the input
  uniq

我来自Ruby,在那里我会这样做:

[ 1,3 ].
  sort.
  tap { |x| puts x }.
  uniq

解决方法

tee命令类似;它将其输入写入标准输出以及一个或多个文件.如果该文件是进程替换,我相信你会得到相同的效果.

echo 1 2 3 | tr ' ' 'n' | sort | tee >( **code** ) | uniq

进程替换中的代码将从其标准输入读取,这应该与uniq的调用最终看到的相同.

(编辑:李大同)

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

    推荐文章
      热点阅读