[问题]大侠帮忙,字符串处理问题??

sh/bash/dash/ksh/zsh等Shell脚本
回复
cjtc1989
帖子: 6
注册时间: 2008-05-05 16:29
送出感谢: 0
接收感谢: 0

[问题]大侠帮忙,字符串处理问题??

#1

帖子 cjtc1989 » 2008-05-22 13:27

我需要编一个检查用户的shell,是这么编的
#!/bin/bash
for in
do
if grep -q "^$in:" /etc/passwd; then
...
else
echo "User $in not found"
fi
done
现在我需要输出用户的姓名,ID还有全称,那该怎么加,主要是我不知道如何把命令行的输出转化到变量中,而且不知道在"***:****:***:***:..."这种类似的字符串中截取我想要的那一段字符串(比如第三个:到第四个:之间),大侠们帮帮忙.谢谢了.
头像
BigSnake.NET
帖子: 12522
注册时间: 2006-07-02 11:16
来自: 廣州
送出感谢: 0
接收感谢: 7 次
联系:

#2

帖子 BigSnake.NET » 2008-05-22 13:32

awk -F\: '{print $1 " " $2 " " $4}'

照葫芦画瓢..
^_^ ~~~
要理解递归,首先要理解递归。

地球人都知道,理论上,理论跟实际是没有差别的,但实际上,理论跟实际的差别是相当大滴。
头像
eexpress
帖子: 58428
注册时间: 2005-08-14 21:55
来自: 长沙
送出感谢: 4 次
接收感谢: 256 次

#3

帖子 eexpress » 2008-05-22 13:40

☎ cat /etc/passwd|grep gdm|cut -d: -f 7
/bin/false
● 鸣学
头像
laborer
帖子: 1016
注册时间: 2005-10-25 11:15
送出感谢: 0
接收感谢: 1 次
联系:

#4

帖子 laborer » 2008-05-23 7:42

来个sed的 :D

代码: 全选

cat /etc/passwd | sed 's/^\([^:]*\):\([^:]*:\)\{3\}\([^:,]*\).*$/\1\t\3/'
hreiser@oakland:~$ killall -9 wife
police@oakland:~$ sudo find / -user hreiser
court@oakland:~$ sudo mv /home/hreiser /jail/
court@oakland:~$ sudo usermod -d /jail/hreiser -s "/usr/sbin/chroot /jail/" hreiser
回复

回到 “Shell脚本”