我知道打印出行/字节/单词的特定值的最简单方法是使用wc -l < filename.sh
,但是当我尝试将它与echo命令一起使用时,它会打印出来物理命令本身而不是输出。
我想要的输出是&#34;这个文件有x行&#34;,x是行数,但当我尝试做echo "this line has" wc -l < filename.sh "lines"
之类的事情时,它会打印命令本身。我还尝试过这一点而不打破报价,以及其他一些事情。
只是命令本身并不适用于echo,或者我错过了一些非常明显的东西吗?
答案 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