我有一个作业,我在一个文件中阅读,这是我的代码
#Reads in file
while read line; do
echo `wc -l` "is the number of students in the input file."
echo `grep '^[^4]'| wc -l`
done <students.txt
基本上我正在尝试显示不以4开头的学生ID的数量。我希望grep'^ [^ 4]'| wc -l可以做到这一点,但它只返回0.下面是正在读入的文本。有关如何实现这一点的任何建议(这是一个介绍UNIX类,所以我现在无法真正使用任何东西哈哈)。
256-56-8411 Bob 3.61 junior cs
471-44-7458 Tim 3.45 senior ce
326-56-4286 Rajesh 2.97 freshman te
548-66-1124 Eric 2.88 sophomore ee
447-21-3599 John 2.51 junior cs
911-41-1256 Rebecca 3.92 senior cs
854-22-6372 Robin 2.45 freshman te
答案 0 :(得分:4)
是否必须使用read
?因为你没有必要。您如何看待简单的grep
或wc -l
?
FILE="students.txt"
echo "$(cat "$FILE" | wc -l) is the number of students in the input file"
echo "$(grep -c '^[^4]' "$FILE") is the number of student ID's that do not start with a 4"