如何在 Bash 中添加到流之前?

2024-03-19

假设我在 bash 中有以下命令:

one | two

one运行很长时间产生输出流并且two对该流的每一行执行快速操作,但是two除非它读取的第一个值告诉它每行要读取多少个值,否则根本不起作用。one不输出该值,但我提前知道它是什么(假设它是15)。我想发送一个15\n在输出之前通过管道one。我不想修改one or two.

我的第一个想法是:

echo "$(echo 15; one)" | two

这给了我正确的输出,但它根本不会通过管道传输,直到命令one完成。我希望输出立即开始通过管道传输,因为执行需要很长时间(数月)。

我也尝试过:

echo 15; one | two

当然,输出 15,但不会通过管道将其发送到two.

bash 有没有办法通过管道传递“15\n”,然后开始流式传输输出one通过同一管道?


您只需要 shell 分组结构:

{ echo 15; one; } | two

大括号周围的空格和尾随分号是必需的。

To test:

one() { sleep 5; echo done; }
two() { while read line; do date "+%T - $line"; done; }
{ printf "%s\n" 1 2 3; one; } | two
16:29:53 - 1
16:29:53 - 2
16:29:53 - 3
16:29:58 - done
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何在 Bash 中添加到流之前? 的相关文章

  • 如何组合输出流,以便输出同时到达多个位置?

    我想将两个 或更多 流合成为一个 我的目标是任何输出都指向cout cerr and clog也可以与原始流一起输出到文件中 例如 当事情记录到控制台时 关闭后 我仍然希望能够返回并查看输出 我正在考虑做这样的事情 class stream
  • 我可以使用 GIT_CONFIG 环境变量来为所有 git 命令使用配置文件吗

    我一直在尝试使用 git 配置文件export GIT CONFIG
  • 使用 tac 和 sed 反转文件

    我有一个用例 我需要搜索并替换文件中最后一次出现的字符串并将更改写回文件 下面的案例是该用例的简化版本 我正在尝试反转该文件 进行一些更改 再次将其反转并写入该文件 我为此尝试了以下代码片段 tac test sed s a b sed i
  • 如何检查我的程序是否有数据通过管道传输到其中

    我正在编写一个应该通过标准输入读取输入的程序 所以我有以下结构 FILE fp stdin 但是 如果用户没有将任何内容通过管道传输到程序中 这就会挂起 我如何检查用户是否确实将数据通过管道传输到我的程序中 例如 gunzip c file
  • 如何在 bash 脚本中使用并行编程/多线程?

    这是我的脚本 bin bash script to loop through directories to merge fastq files sourcedir path to source destdir path to dest fo
  • 向后台进程发送命令

    我有一个先前运行的进程 process1 sh 它正在后台运行 PID 为 1111 或其他任意数字 我怎样才能发送类似的东西command option1 option2PID 为 1111 的进程 I don t想要启动一个新的proc
  • bash 将输出重定向到文件,但结果不完整

    重定向命令输出的问题已经被问过很多次了 但是我有一个奇怪的行为 我使用的是 bash shell debian 版本 4 3 30 1 release 并尝试将输出重定向到文件 但并非所有内容都记录在文件中 我尝试运行的 bin 文件是 l
  • 如何根据 Bash 中的 VI 模式更改光标形状?

    我的 bashrc 中有以下行 set o vi 我希望我的光标在插入模式下具有管道形状 在命令模式下具有块形状 就像我在 vimrc 中放置以下内容时在 Vim 中的形状一样 let t SI e 6 q let t SR e 4 q l
  • 用于编译和运行 C++ 的 bash 脚本

    我正在尝试进入 C 但必须使用冗长的命令通过命令行运行东西很烦人 所以我想制作一个 bash 脚本来简化过程并运行这些命令 bin bash if 1 start then cd CCPP cd HelloWorld g Wall W We
  • 如何使用 Bash 编写二进制文件?

    我的问题是我需要创建一个包含以下确切字节的文件 48 00 49 00 我不能使用C perl 其他脚本语言 目标是嵌入式设备 我使用 awk 尝试过 在桌面上它确实有效 awk BEGIN printf c c c c 48 00 49
  • unix 下日期字段排序

    我有包含数十万条记录的文本文件 其中一个字段是日期字段 有没有办法根据日期字段对文件进行排序 09 APR 12 04 08 43 632279000 AM 19 MAR 12 03 53 38 189606000 PM 19 MAR 12
  • 正则表达式删除块注释也删除 * 选择器

    我正在尝试使用 bash 从 css 文件中删除所有块注释 我有以下 sed 命令的正则表达式 sed r s w s w d 这可以很好地去除块注释 例如 This is a comment this is another comment
  • Child_process 处理带有回车符 (\r) 的 STDOUT 流

    我正在编写一个简单的应用程序 它允许工作中的内部系统请求从远程服务器到使用 REST 调用发起的另一个远程服务器的复制过程 使用 rsync 我已经对express框架足够熟悉 并且刚刚开始尝试child process库 并偶然发现了一个
  • 检查 bash 中是否存在关联数组元素

    在 bash 脚本中 我在变量中有一个区域设置 如下所示 locale fr ma 我也有一个像这样的关联数组 declare A new loc map new loc fr ma en ma new loc el gr en gr ne
  • Bash 中所有匹配的^单词^替换^?

    为了澄清 我正在寻找一种方法来执行global搜索并替换先前使用的命令 word replacement 似乎只替换了第一场比赛 有没有一些set我无法选择的选项 尝试这个 echo oneone oneone gs one two Rep
  • 关键字“if”如何测试一个值是真还是假?

    在 bash 脚本中 if 1 then echo Yes else echo No fi Output Yes 它表示 1 被视为真值 但在代码中 word Linux letter nuxi if echo word grep q le
  • grep 排除文件的数组参数

    我想从我的文件中排除一些文件grep命令 为此我使用参数 exclude excluded file ext 为了更容易阅读 我想使用包含排除文件的 bash 数组 EXCLUDED FILES excluded file ext 然后将
  • 批量删除文件名中包含 BASH 中特殊字符的子字符串

    我的目录中有一个文件列表 opencv calib3d so2410 so opencv contrib so2410 so opencv core so2410 so opencv features2d so2410 so opencv
  • 比较两个文件的单列

    我有两个文件 每个文件都有两列 并用空格分隔 我想找到两个文件中第 2 列不相同的行 并将它们输出到第三个文件 file A 1 AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA 2 BBBBBBBBBBBBBBBBBBBBBB
  • 如何从没有结尾的管道中读取 python 中的 stdin

    当管道来自 打开 时 不知道正确的名称 我无法从 python 中的标准输入或管道读取数据 文件 我有作为例子管道测试 py import sys import time k 0 try for line in sys stdin k k

随机推荐

  • Android:无论如何想知道是否选中了“未知来源”吗?

    有什么方法可以查明用户是否选中了 应用程序设置 菜单中的 未知来源 复选框 您可以使用INSTALL NON MARKET APPS http developer android com reference android provider
  • MVC3 AntiForgeryToken 在 Ajax 登录时中断

    ASP NET MVC 的防伪令牌机制是基于当前HttpContext User 当您调用时 它使用该值来构造令牌Html AntiForgeryToken 基本上是可以的 见解释最后一段在这里 https stackoverflow co
  • Hibernate 的浮点映射精度

    我试图在 MySQL 数据库中存储浮点数 但 Hibernate 获得的值与列中存储的值不同 在我的应用程序中我计算 float subtotal 160 5f float ammount float subtotal 0 1f this
  • 使 div 始终停留在页面内容的底部,即使有滚动条

    我希望实现与以下问题相反的行为 CSS 将 Div 推到页面底部 https stackoverflow com questions 2140763 css push div to bottom of page 也就是说 当内容溢出到滚动条
  • 在浏览器中访问 HTTP/2 预告片

    当前是否有任何浏览器支持在 HTTP 2 响应中访问预告片 例如 最新的 Fetch API 规范提到预告片是通过 Response trailer 公开的 有支持该功能的浏览器吗 您可以在以下位置找到测试用例http wpt fyi fe
  • sed - 执行替换后从列出的值中删除最后一个逗号

    我在用着sed替换我的文件中的新行 n with 效果很好 但是在我的最后一项中 我不想要 我怎样才能删除这个 Example sed s n g myfile out gt myfile csv Output 1 2 3 4 5 6 那么
  • 提交 iOS 版本更新,无需重新上传屏幕截图和应用预览

    我想提交 iOS 应用程序的更新 但这似乎需要提交新版本 其中需要重新输入所有信息 屏幕截图 视频等 我找不到任何明确说明可以为已批准的现有版本单独提交新版本的内容 这可能吗 如果没有 有没有办法在 iTunesConnect 中复制所有先
  • 在 WordPress 中为头像图像添加类

    我一直在尝试使用 get avatar 在每个帖子下显示作者的头像在 WordPress 模板中使用应用类 但我找不到将 class pic 2 添加到 Gravatar 图像代码的方法 甚至找不到将 Gravatar 高度和宽度分别更改为
  • 如何将颜色资源 id 的 int 数组从 array.xml 传递到 SwipeRefreshLayout.setColorSchemeResources

    我已经让 Android 的 SwipeRefreshLayout 正常工作 并尝试自定义整个应用程序中所有拉动刷新的颜色 为了遵循 DRY 原则 我尝试将所需的颜色移动到 array xml 如下所示
  • 我们可以使用自己的应用程序实现放大手势吗?

    我需要使用我的 Android 应用程序实现放大手势 此信息的部分或全部仅适用于运行 Android 4 2 的 Nexus 7 设备 检查更多关于放大手势 http pauljadam com androida11y magnificat
  • 获取AngularJS中的对象长度未定义

    如何获得物体的长度 在控制台中我的对象如下所示 Object 2 true 3 true 4 true length会给我不明确的 我只想得到results 3对于这个案例 var keys Object keys objInstance
  • 如何找到一条边上距离另一个点最近的点

    我正在寻找一种方法来有效地找到边缘上距离其他点最近的点 假设我知道两个点 它们是边的顶点 我可以计算穿过这些点的线的方程 计算边缘上距离平面上其他点最近的点的最佳方法是什么 我想发布一张图片 但我没有足够的声誉点 假设这条线由 x1 y1
  • 聚合列 - 如何处理不均匀的数据帧

    我想聚合每个Chr每第三行 三行的总和 然而 自从我的df不能被 3 整除 我不知道如何处理最后剩下的行 它可能只是 1 或 2 行 如果还剩下两行 我想将剩下的两行相加 Input data frame Chr c chr1 chr1 c
  • 在 Verilog 中判断总线是否包含单个 x 的最佳方法是什么?

    我有一个监控总线的测试台 总线内的一些信号 位 可以是 1 bx 由于多种原因 我需要知道总线内是否有任何信号是 1 bx 如果总线包含任何 x 测试 不用于综合 仅用于模拟目的 的最佳方法是什么 我曾希望我可以使用减少或然后使用 但这似乎
  • NoMethodError 未定义方法“link_to_function”

    我将 ActiveAdmin 添加到我的应用程序中 更新了一些 gem 现在我得到了undefined method link to function 查看用户显示页面时 我有will paginategem 和我添加了一个初始化程序 所以
  • 当我尝试变换此播放器控制器时,它只是重置到原始位置

    这是我现在使用的播放器控制器的简化版本 它仍然会产生如下错误 using UnityEngine using UnityStandardAssets CrossPlatformInput using UnityStandardAssets
  • GIT 后接收挂钩未检出子模块

    我一直在开发 Kohana 3 项目 该项目是我不久前使用下载的 zip 文件安装的 我的远程服务器 project git 上有一个 git 存储库 它检查对我测试应用程序的工作目录 public html 的最新提交 我的接收后挂钩文件
  • 同步块——锁定多个对象

    我正在建模一个游戏 其中多个玩家 线程 同时移动 玩家当前所在位置的信息被存储两次 玩家有一个变量 hostField 它引用棋盘上的一个字段 每个字段都有一个 ArrayList 存储当前位于该字段的玩家 我对拥有冗余信息这一事实不太满意
  • min-height:100% 不起作用,因为我也想要它

    我有一个容器 div 包含 3 个 div 一个侧边栏 一个内容和一个标题 而内部的所有元素均按应有的方式呈现 如果这可能会影响我的问题 则它们被定位为 相对 侧边栏和内容使成为min height 100 根据我的需要 包含它们的 div
  • 如何在 Bash 中添加到流之前?

    假设我在 bash 中有以下命令 one two one运行很长时间产生输出流并且two对该流的每一行执行快速操作 但是two除非它读取的第一个值告诉它每行要读取多少个值 否则根本不起作用 one不输出该值 但我提前知道它是什么 假设它是1