打印带有回声的shell中的行数

时间:2017-03-18 22:39:48

标签: shell

我知道打印出行/字节/单词的特定值的最简单方法是使用wc -l < filename.sh,但是当我尝试将它与echo命令一起使用时,它会打印出来物理命令本身而不是输出。

我想要的输出是&#34;这个文件有x行&#34;,x是行数,但当我尝试做echo "this line has" wc -l < filename.sh "lines"之类的事情时,它会打印命令本身。我还尝试过这一点而不打破报价,以及其他一些事情。

只是命令本身并不适用于echo,或者我错过了一些非常明显的东西吗?

4 个答案:

答案 0 :(得分:1)

echo "this line has $(wc -l < filename.sh) lines"

答案 1 :(得分:1)

printf是多才多艺的:

printf 'this file has %s lines\n' $(wc -l < filename.sh)

$(command)command的输出转换为参数。

答案 2 :(得分:0)

试试这个:

echo "this file has `wc -l < filename.sh | awk '{print $1}'` lines"

说明:

wc -l < filename.sh检索文件的行号

awk '{print $1}'打印数字,没有任何空白

``表示首先执行命令以获得结果

答案 3 :(得分:0)

没有任何子shell或管道,awk有一个内置变量NR,它保存输入文件中的记录数。打印在END块内写入,在结束时打印结果,它将打印每行的行号。

 awk 'END{print "This line has " NR " lines" }' file