我正在运行这一系列命令
passwd=`wc -l /etc/passwd`
echo $passwd
返回:
34 /etc/passwd
我需要做些什么才能显示wc -l
的输出?
答案 0 :(得分:1)
只需从标准输入读取而不是给wc
文件名:
$ passwd=`wc -l < /etc/passwd`
$ echo "$passwd"
86
wc
仍会输出相当多的填充,但文件名被省略(因为wc
不知道数据来自哪个文件)。
答案 1 :(得分:0)
这是wc
的默认行为:
» wc -l /etc/passwd
28 /etc/passwd
没有办法告诉wc不输出文件名。
答案 2 :(得分:0)
或许使用awk
?
$ passwd=$(wc -l /etc/passwd | awk '{print $1}')
$ echo $passwd
32
使用cut
来自cut (GNU coreutils)
$ passwd=$(wc -l /etc/passwd | cut -d" " -f1)
$ echo $passwd
32
答案 3 :(得分:0)
wc
也返回文件名,但还有其他方法可以做到。一些例子:
passwd=`wc -l /etc/passwd | grep -o [1-9]\*`
或
passwd=`wc -l /etc/passwd | cut -f1 -d' '`
(回答这个问题:get just the integer from wc in bash)