コマンドを実行してfindから、出力の行数を数え、結果の出力を出したいです。私の率直なアプローチはこれでした:
output=$(find ...)
lines=$(echo "$output" | wc -l)
echo "$output"
しかし残念なことに、echoこれをパイプするために使用するwcと改行が追加されるため、find何も見つからなかった場合でも (出力のゼロ行)、それwcは(追加され1た改行に対して.echo
echo出力に改行が追加されないように を aに変更しましたが、 likeprintfの 1 行の出力にも改行がなかったため、が出力されました。findvar/wc0
問題は、出力のキャプチャにあります ( $(...))。私の場合は関連する末尾の改行を取り除きます。
これをどうにかして防ぐことはできますか?
元のタスクにまったく異なるアプローチはありますか?