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

linux – 如何将剪切输出写入文件

发布时间:2020-12-14 01:15:27 所属栏目:Linux 来源:网络整理
导读:我在bash上有自定义生成器: #!/bin/bashwhile :do echo "1 2 3 4" sleep 1done 我不想削减第3栏: $./loop.sh | cut -d' ' -f3 这工作正常,但当我尝试将其输出到文件时: $./loop.sh | cut -d' ' -f3 myfile 什么都没发生,这个文件是空的.我期望看到3列的列
我在bash上有自定义生成器:

#!/bin/bash
while :
do
    echo "1 2 3 4"
    sleep 1
done

我不想削减第3栏:

$./loop.sh | cut -d' ' -f3

这工作正常,但当我尝试将其输出到文件时:

$./loop.sh | cut -d' ' -f3 > myfile

什么都没发生,这个文件是空的.我期望看到3列的列,但什么也没得到.我做错了什么?

解决方法

正如我在评论中提到的那样,它可能正在缓冲.当我尝试这个时,我得到了相同的结果.
您可以使用stdbuf来修改缓冲,就像这样(至少,这对我有用):

./loop.sh | stdbuf -o0 cut -d' ' -f3  > myfile

缓冲在管道链的最后部分完成(或似乎已完成),因此就是放置stdbuf的地方.

有关详细信息,请参阅man stdbuf.

(编辑:李大同)

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

    推荐文章
      热点阅读