Shell脚本。分裂线

时间:2015-03-26 13:11:02

标签: linux shell unix awk

我的文件包含用户信息

    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。我做错了什么?

1 个答案:

答案 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。