我的文件包含用户信息
darjak2:x:60919:100:Name Surname IF-3/3 2015-02-11:/export/home/darjak2:/bin/bash
edvmic:x:60920:100:Name2 Surname2 IF-3/14 2015-02-11:/export/home/edvmic:/bin/bash
darjak2:x:60519:100:Name3 Surname3 IF-3/3 2015-02-11:/export/home/darjak2:/bin/bash
edvmic:x:60920:100:Name4 Surname4 IF-3/9 2015-02-11:/export/home/edvmic:/bin/bash
所以我在这里运行我的脚本
./aa IF-3/3
所以我需要打印来自IF-3/3
indx=0
kiekis=0
labas=$1
for i in $*
do
indx=$(($indx+1))
kiekis=$(grep $i /etc/passwd | wc -l)
echo "Grupe " $i "Mokiniu kiekis " $kiekis> t$indx
awk -F: '{split($5,a,/[[:blank:]]+/); result=$(a[3])}' /etc/passwd
echo $result
done
所以我分开了一切。然后尝试执行此操作result=$(a[3])
以后我会检查结果是否= $ i。我做错了什么?
答案 0 :(得分:2)
您需要添加if条件以检查a[3]
是否等于IF-3/3
,如果是,则强制awk程序打印a[1]
和a[2]
。
$ labas='IF-3/3'
$ awk -F: -v var="$labas" '{split($5,a,/[[:blank:]]+/);if(a[3]==var)print a[1],a[2]}' file
Name Surname
Name3 Surname3
好像你已经存储了labas
变量的第一个参数。使用awk的-v
参数将shell变量的值传递给awk。