gpt4 book ai didi

bash - 捕获输出并计算其行数

转载 作者:行者123 更新时间:2023-11-29 09:17:32 26 4
gpt4 key购买 nike

我想运行一个find 命令,然后计算输出的行数并给出结果的输出。我的直截了当的方法是:

output=$(find ...)
lines=$(echo "$output" | wc -l)
echo "$output"

但不幸的是,使用 echo 将其通过管道传输到 wc 会添加一个换行符,因此即使 find 没有找到任何内容(零行输出),wc 给出了 1(对于 echo 附加的换行符。

我将 echo 更改为 printf 以防止将换行符附加到输出,但随后也将 find 的单行输出更改为 printf var/ 没有换行符,因此 wc 给出了 0

问题在于捕获输出 ($(...))。它去除了在我的情况下相关的尾随换行符。

这能以某种方式避免吗?

我的原始任务是否有完全不同的方法?

最佳答案

想到的一个简单解决方法是检查字符串是否为空:

[ -z "$output" ] && count=0 || count=$(wc -l <<< "$output")

如果 find 没有产生任何输出,那么 count 将为 0,否则它将包含输出中的行数。

关于bash - 捕获输出并计算其行数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23295161/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com