如果我让你正确比:
$ who
oxo tty7 2014-05-12 14:32 (:0)
bar pts/5 2014-05-12 18:35 (:0:S.1)
oxo pts/1 2014-05-13 13:29 (:0:S.5)
baz pts/8 2014-05-12 18:35 (:0:S.2)
oxo pts/12 2014-05-12 18:35 (:0:S.3)
oxo pts/13 2014-05-12 18:35 (:0:S.4)
foo pts/15 2014-05-12 18:35 (:0:S.0)
bar pts/17 2014-05-13 19:36 (:0:S.6)
bar pts/18 2014-05-14 00:03 (:0:S.7)
你希望得到例如:
$ ./who.sh foo bar
bar pts/5
foo pts/15
bar pts/17
bar pts/18
如果是比这将为其工作你:
#!/bin/bash
users=`echo [email protected]|tr " " "|"`
who|sort -k 3|awk -v users="$users" '$1 ~ users {print $1" "$2}'
实际上它可以在或sort
的awk
中完成,但我希望它已经足够好了。
UPDATE:
为了摆脱tr
这可以用于:
#!/bin/bash
who|sort -k 3|awk -v users="$*" 'BEGIN { regex = gensub(/\s/, "|" ,"g", users) }; $1 ~ regex { print $1" "$2 }'
您可以使用asorti()
更换sort
。
举个例子你想如何运行它 – pawel7318
./script username1 username2 blabla pete stevie etc – Daniel
另一个作业? :) – pawel7318