2个回答
展开全部
for user in `awk -F: '/\/bin\/bash$/{print $1}' /etc/passwd`
do
echo "$user"
#使用字符串变量 user 就行了
done
awk里本身就具有grep的功能,合并一下。
追问
谢谢,您能解释下您的awk语句各部分的意思 我怎么看不懂
追答
-F:
指定字段分隔符为冒号
也可以在awk的BEGIN段里指定:awk 'BEGIN{FS=":"}'
FS,即Field Separator,字段分隔符。
/\/bin\/bash$/
首先匹配 /bin/bash$
awk中的匹配格式为/RE/,由于RE中含有路径/,需要在前面加转义符\ 进行转义。
{print $1}
awk一次只读入并处理一行数据,这是在awk的主体段中对每行数据打印第一个字段(根据字段分隔符,默认空白符分隔,空白符即空格或TAB,但这里已指定为冒号)。
展开全部
给个具体的例子啊,不然怎么知道提出哪部分?
追问
grep /bin/bash$ /etc/passwd | awk -F : '{print $1}'
提取每个用户 每个用户是一个变量
追答
users=`grep /bin/bash$ /etc/passwd | awk -F : '{print $1}'`
for user in $users
do
echo "user is :$user"
done
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询