面试:文本处理之grep练习
1、定义一个对所有用户都生效的别名,例如:lftp='lftp 172.168.0.1/pub'.
1 ~]# vim /etc/bashrc 2 在后面加入 3 alias lftp='lftp 172.168.0.1/pub' 4 保存退出: 5 ~]# source /etc/bashrc
2、显示/etc/passwd文件中包含两位或三位数字的行。
1 ~]# cat /etc/passwd | grep -E "\<([0-9]{2}|[0-9]{3})\>"
3、找出/etc/passwd文件中不以/bin/bash结尾的行。
1 ~]# grep -Ewv "/bin/bash" /etc/passwd
4、显示/proc/meminfo文件中以大写或小写s 开头的行;用三种方式实现。
1 ~]# grep -E "^(s|S)" /proc/meminfo 2 ~]# grep -E "^[sS]" /proc/meminfo 3 ~]# grep -Ei "^s" /proc/meminfo
5、使用echo输出一个绝对路径,使用egrep取出路径名,类型执行dirname /etc/paswwd的结果。
1 ~]# echo /etc/passwd | grep -E -o '.*/\<'
6、找出ifconfig的IP地址。要求结果只显示IP地址。
1 ifconfig | grep -Eo "(\<([0-9]|[0-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\>.){3}\<([0-9]|[0-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\>"
7、vim定制自动缩进四个字符。
1 编辑/etc/vimrc 2 在后面添加:set smartindent 3 set tabstop=4 4 set shiftwidth=4 5 set expandtab 6 set softtabstop=4
8、编写脚本,实现自动添加三个用户,并计算这三个用户的UID之和。
1 1、在脚本目录下创建userlist.txt文件编辑要添加的三个用户 2 2、编写脚本useradd.sh 3 #!/bin/bash 4 #添加三个用户,实现UID之和 5 # 6 SUM=0 7 for i in $(cat userlist.txt) 8 do 9 useradd $i 10 echo $i | passwd --stdin $i 11 done 12 for j in $(tail -3 /etc/passwd | cut -d":" -f3) 13 do 14 sum=$[$sum+$j] 15 done 16 echo "sum of user id:$sum"