文本查找命令grep和正则表达式实战

测试文本:

1. 一面:  HashMap原理, JAVA内存模型,排序算法,JAVA多线程实现,JAVA线程和进程区别
2. 一面:  Spring IOC Spring AOP是干嘛的 spring IOC 用于控制反转,使得细节依赖于抽象
3. 一面:  HashMap,put和get同时操作  treemap实现,红黑树 concurrenthashmap 聚簇索引和非聚簇索引(出现次数少)计算机的使用可以加速人类的计算速度
4. 一面:  HashMap源码,线程有几种状态,怎么互相转化,HTTP状态吗,Session,Cookie区别,排序算法,事务的ACID,索引的实现机制(B+树),优缺点
5. 一面:  Post和get区别,http缓存,DNS解析,排序
6. 一面:  List和set区别,linklist和arraylist区别,应用场景,hashmap多线程concurrenthashmap 怎么实现,jam参数,gc参数,lock和synchronized,http 302 https具体数据传输流程
7. 一面:  Map的Key要求,HashMap实现原理,JDK1.8 HashMap改动(引入红黑树)
8. 一面:  Spring MVC底层实现,进程和线程区别,哈希如何解决冲突,数组和链表在内存中表型形式,平衡二叉树,红黑树,HTTP/HTTPS过程 OSI 7层模型 TCP三次握手
9. 一面:  TCP连接断开过程,为什么要三次握手 数据库隔离级别,序列化级别有什么优缺点 内存泄漏如何检测,介绍堆和栈
10 一面:  Object类方法,error/exception/runtime exception区别,JVM垃圾回收,linux查看日志文件,*9数据库四大特性,事务隔离级别,幻读 ClassLoader
11 一面:  SpringMVC和Struts比较,为什么要用spring有什么优点,启动线程方式,线程池有几种,干什么用。JVM加载过程,JAVA内存模型,排序
12 一面:  三次握手,超时重传。TCP保证可靠性,拥塞控制,滑动窗口协议 由http升级为https需要哪些操作 http 2 了解过吗 hashCode与equals的区别联系。自动拆装箱 线程同步,并发操作怎么控制
 

grep命令

grep命令使用格式

选项十分多但是实际常用的大概有如下:

  1. -c 或 --count 计数符合要求的行数并输出

    -c选项说明

    测试匹配行数

  2. -i 或 --ignore-case忽略大小写的匹配

    -i选项

    忽略大小写的匹配

  3. -n 打印行号,在使用-c -l -L -q 选项时无效

    -n选项

  4. -A num 打印匹配的行以及下面的num行

    -A选项

    -A选项

  5. -B num-A num 选项相反

    -B选项

  6. -C 打印匹配的行以及上下num行等价于 -A num -B num

    -C选项

    不要使用默认的两行,实际会报错

  7. -v 反选,打印不匹配的行

    -v

    文本查找命令grep和正则表达式实战_第1张图片
    image.png


正则表达式

测试文本:

root:this is my account
rut:this is my account too
kent:this is kent's account
rooooot:this is a shadow of root
rrrrot:使用option+F然后加数字在左右方向键可以移动光标相应行数或字符数

3141592653
abcdefgh
abcdefgh
abcdefgh
3141592653
3141592653

  1. 数字的匹配
    [0-9] : 匹配0-9之间的数字
    文本查找命令grep和正则表达式实战_第2张图片
    打印匹配的行并输出行号

    [13] : 匹配含有1或者3的内容
    如果在 [] 需要使用 - 需要加上反斜杠 \
  2. 字母的匹配
    [a-zA-Z] : 匹配大小写字母
    文本查找命令grep和正则表达式实战_第3张图片
    匹配大小写字母

    ^ : 表示匹配除了 [] 之外字符的字符.如可以使用 [^a-zA-Z] 表示匹配除了大小写字母的内容.
    注意这里的 ^ 是只要一行中有一个非字母就会匹配并输出
    文本查找命令grep和正则表达式实战_第4张图片
    只要有非字母就会输出
  3. 特殊字符的意义
    ^ : 在 [] 之外的 ^ 表示匹配行首
    $ : 表示匹配行尾
    文本查找命令grep和正则表达式实战_第5张图片
    匹配空行和非空行

    匹配不以字母开始的行

    . : 匹配除了换行符的任一个字符
    * : 匹配零个或多个前面的字符.这和通配符有所区别.
    注意, .* 可以匹配零个或者多个任一个字符,包括空行
    统计包括空行在内的行数

    {} : 指定匹配的次数.常需要结合转义字符使用
    多次匹配

你可能感兴趣的:(文本查找命令grep和正则表达式实战)