我有以下平面文件employees.txt
100 Thomas Manager Sales $5,000
200 Jason Developer Technology $5,500
300 Sanjay Sysadmin Technology $7,000
400 Nisha Manager Marketing $9,500
500 Randy DBA Technology $6,000
我想统计每个部门的人数。我知道有更短的方法可以使用类似的命令来执行此操作,awk '{print $4}' employees.txt | sort | uniq -c
但我想学习 while 循环的机制,逐行读取输入
#!/bin/bash
awk '{print $4}' employees.txt > temp_file
array=[]
while read line
do
if [[ $array[$line] ]]
then
$array[$line]=$(($array[$line]+1))
else
$array[$line]=0
fi
done < temp_file
当我运行这个脚本时,我得到了错误./process.sh: line 9: [][Sales]+1: syntax error: operand expected (error token is "[][Sales]+1")
另外-在关键字之后是否可以使用语法done
来获取第四列中的条目?我试过done < awk '{print $4}' employees.txt
了,但这是不正确的。
另外-有没有办法可以将输出存储awk '{print $4}' employees.txt > temp_file
在变量而不是临时文件中?