管道输出到参数

时间:2013-01-26 03:25:41

标签: unix pipe

所以我想写一个简单的命令,它比我当前目录中的文件数少一个。我有这个命令接近但一个人关闭。

ls | wc -l

如何将其传递给bc,以便我可以减去一个?

谢谢!

2 个答案:

答案 0 :(得分:0)

这真的不是你想要做的。请改用find

find . -maxdepth 1 -type f | wc -l

此外,您可以使用以下命令排除隐藏文件:

find . -maxdepth 1 -type f ! -name ".*" | wc -l

为完整起见,您可以处理包含换行符和空格的文件,如:

find . -maxdepth 1 -type f -print0 | tr -dc '\0' | wc -c

答案 1 :(得分:0)

要管道到bc你可以使用类似的东西

echo " $(ls | wc -l) - 1 " | bc

编辑:用史蒂夫的答案或您需要的任何其他命令替换$( )中的部分。