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

bash – 将`split`实用程序的输出发送到stdout

发布时间:2020-12-15 21:19:14 所属栏目:安全 来源:网络整理
导读:从 this question开始,我找到了split utilty,它接受一个文件并将其分成均匀大小的块.默认情况下,它将这些块输出到新文件,但我想将它输出到stdout,由换行符(或任意分隔符)分隔.这可能吗? 我试过cat testfile.txt | split -b 128 – / dev / stdout 错误拆分
从 this question开始,我找到了split utilty,它接受一个文件并将其分成均匀大小的块.默认情况下,它将这些块输出到新文件,但我想将它输出到stdout,由换行符(或任意分隔符)分隔.这可能吗?

我试过cat testfile.txt | split -b 128 – / dev / stdout

错误拆分失败:/ dev / stdoutaa:权限被拒绝.

看一下帮助文本,似乎这告诉split使用/ dev / stdout作为文件名的前缀,而不是写入/ dev / stdout本身.它不表示使用分隔符直接写入单个文件的任何选项.有没有办法可以欺骗分裂成这样做,还是有不同的实用工具来完成我想要的行为?

解决方法

目前尚不清楚你想要做什么,但也许–filter选项拆分会有所帮助:

--filter=COMMAND
          write to shell COMMAND; file name is $FILE

也许你可以直接使用它.例如,这将一次读取10个字节的文件,通过tr命令传递每个块:

split -b 10 --filter "tr [:lower:] [:upper:]" afile

如果你真的想在stdout上发出一个在块之间有分隔符的流,你可以这样做:

split -b 10 --filter 'dd 2> /dev/null; echo ---sep---' afile

如果afile是我当前目录中的文件,如下所示:

the quick brown fox jumped over the lazy dog.

然后上面的命令将导致:

the quick ---sep---
brown fox ---sep---
jumped ove---sep---
r the lazy---sep---
 dog.
---sep---

(编辑:李大同)

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

    推荐文章
      热点阅读