LINUX学生会linux学习

grep及正则表达式

2017-06-22  本文已影响125人  数据革命

grep

基本正则表达式

egrep及扩展的正则表达式

grep = grep -E

练习:
1,显示当前系统root,centos或user1用户的默认shell和UID:
答案:grep -E "^(root|centos|user1)>" /etc/passwd|cut-d: -f1,3,7
2,找出/etc/rc.d/init.d/functions文件(centos6)中某单词后面跟一个小括号的行
答案“grep -E -o "[_[:alpha:]]+() /etc/rc.d/init.d/functiosns"
3,使用echo 输出一绝对路径,使用egrep取出其基名:
答案:echo "/mnt/sdc" | grep -E -o "[^/]+/?$|cut-d”/" -f1
4,找出ifconfig命令结果中1-255之间的数值:

5,找出ifconfig命令结果中的ip地址

bash的基础特性

本地变量:

   - 变量赋值:name=`value`
   - 可以使用引用:
   - value:
       (1)可以式直接字符串:name="username"
       (2)变量引用:name="$username"
       (3)命令引用:name=COMMAND`,name=$(COMMAND)
   - 变量引用:${name},或-$name
   - "  ":弱引用,其中的变量引用会被替换为变量值
   - ·· :强引用,其中的变量引用不会被替换为变量值,而保持原字符串:

环境变量

bash由许多内建的环境变量:PATH,SHELL,UID,HISTSIZE,HOME,PWD,OLD,PS1,HISTFILE

变量命名法则:

1,不能使用程序中的关键字或保留字:if ,for 等等
2,只能使用数字,字面及下划线,且不能以数字开头;
3,尽量做到见名知义,

位置变量

元字符 定义
^ 行首
$ 行尾
. 任意单一字符
[ ] [ ]范围内的任意单一字符
[^ ] 除[ ^] 内的任意单一字符
* *前面字符重复不确定次数
+ +前面字符重复一次以上不确定次数
? ?前面字符重复0或1次
\ 转义符
.* 任意长度字符
{ n} 前面字符重复n次
{n,} 前面字符重复n次以上
元字符 定义
[:alnum:] 字母和数字
[:alpha:] 代表任何英文大小写字符,亦即 A-Z, a-z
[:lower:] 小写字母
[:upper:] 大写字母
[:blank:] 水平空白字符(空格和制表符)
[:space:] 所有水平和垂直的空白字符(比[:blank:]包含的范围广)
[:cntrl:] 不可打印的控制字符(退格、删除、警铃...)
[:digit:] 十进制数字
[:graph:] 可打印的非空白字符
[:print:] 可打印字符
[:punct:] 标点符号
[:xdigit:] 十六进制数字
上一篇 下一篇

猜你喜欢

热点阅读