• Linux学习(2)- 正则表达式基础


    Linux学习(2)- 正则表达式基础

    一、基础正则表达式介绍与练习

    学习内容

    • 正则表达式特殊符号
    [:alnum:]代表英文大小写字母及数字 
    [:alpha:]代表英文大小写字母
    [:blank:]代表空格和 tab 键
    [:cntrl:]键盘上的控制按键,如 CR,LF,TAB,DEL
    [:digit:]代表数字
    [:graph:]代表空白字符以外的其他
    [:lower:]小写字母
    [:print:]可以被打印出来的任何字符
    [:punct:]代表标点符号
    [:upper:]代表大写字符
    [:space:]任何会产生空白的字符如空格,tab,CR 等
    [:xdigit:]代表 16 进位的数字类型
    

    作业

    • 使用```

    grep -n '[(上面的内容)]' XXX.txt

    
    ![](http://images2015.cnblogs.com/blog/830327/201706/830327-20170628102432321-2090522561.png)
    
    
    ## 二、[grep 命令与正则表达式](https://www.shiyanlou.com/courses/90/labs/780/document)
    
    - 实验文档讲解的已经十分清楚,若有记得不清楚的直接查看即可,所以直接链接,博客里就摘抄一下总结。
    
    

    总结:
    ^word 表示带搜寻的字符串(word)在行首

    word$ 表示带搜寻的字符串(word)在行尾

    .(小数点) 表示 1 个任意字符

    表示转义字符,在特殊字符前加会将特殊字符意义去除

    •    表示重复 0 到无穷多个前一个 RE(正则表达式)字符
      

    [list] 表示搜索含有 l,i,s,t 任意字符的字符串

    [n1-n2] 表示搜索指定的字符串范围,例如[0-9] [a-z] [A-Z]等

    [^list] 表示反向字符串的范围,例如[0-9]表示非数字字符,[A-Z]表示非大写字符范围

    {n,m} 表示找出 n 到 m 个前一个 RE 字符

    {n,} 表示 n 个以上的前一个 RE 字符

    
    参数说明:
    
    -a :将 binary 档案以 text 档案的方式搜寻数据
    
    -c :计算找到 '搜寻字符串' 的次数
    
    -i :忽略大小写的不同,所以大小写视为相同
    
    -n :顺便输出行号
    
    -v :反向选择,亦即显示出没有 '搜寻字符串' 内容的那一行!
    
    ### 作业
    
    - 使用-n和不使用的区别
    
    ![](http://images2015.cnblogs.com/blog/830327/201706/830327-20170628102450696-1766708683.png)
    
    - 一些练习:
    
    ![](http://images2015.cnblogs.com/blog/830327/201706/830327-20170628102746821-1603049102.png)
    
    ![](http://images2015.cnblogs.com/blog/830327/201706/830327-20170628102748477-365529227.png)
    
    
    ## 三、[正则表达式运用之 sed 工具命令](https://www.shiyanlou.com/courses/90/labs/781/document)
    
    在iterm中```
    nl regular_express.txt | sed '2a hello
    20155205'
    ```会出错
    
    ![](http://images2015.cnblogs.com/blog/830327/201706/830327-20170628104957539-740657807.png)
    
    但是```
    nl regular_express.txt | sed '2d'
    ```却是正确的
    
    ![](http://images2015.cnblogs.com/blog/830327/201706/830327-20170628104959664-366417462.png)
    
    查找了很多,还是不会怎么弄。。。
    
    - 总结了一下感觉还是要自己多用多练才能熟练,此外因为我的事mac系统,所以有些命令和实验楼讲的不一样,自己也要多摸索。
    
    ## 参考资料
    
    - [Shell正则表达式之grep、sed、awk实操笔记](http://www.jb51.net/article/54961.htm)
    - [sed命令](http://man.linuxde.net/sed)
  • 相关阅读:
    JAVA学习之常用集合List,Set,Map
    【收藏】SQL多行变一列
    sql 多个字段分组,删除重复记录,保留ID最小的一条
    【转】 JavaScript:history.go() 的妙用(转) 处理post回发后返回
    【转】SQL SERVER 2005中如何获取日期(一个月的最后一日、上个月第一天、最后一天、一年的第一日等等)
    require.context实现自动化导入文件
    Vue进阶——解析V-MODEL
    ES6 的遍历器接口 Iterator
    必须掌握的ES6新特性
    Vue自定义指令获取DOM元素
  • 原文地址:https://www.cnblogs.com/haoliberale/p/7088799.html
Copyright © 2020-2023  润新知