shell 如何提取出文本中的字符串作为变量使用

如题... 如题 展开
 我来答
百度网友5311d79
2014-09-23 · TA获得超过1.9万个赞
知道大有可为答主
回答量:6356
采纳率:71%
帮助的人:3223万
展开全部
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,但这里已指定为冒号)。
kaixingui2012
2014-09-23 · TA获得超过4.2万个赞
知道大有可为答主
回答量:1.4万
采纳率:81%
帮助的人:6454万
展开全部
给个具体的例子啊,不然怎么知道提出哪部分?
追问
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
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式