zoukankan      html  css  js  c++  java
  • shell脚本-编程前奏-小工具之grep(文本处理)

    目标:
    了解shell中的通配符
    熟悉grep小工具和shell中通配符的使用

    什么是grep
    grep是行过滤工具;用于根据关键字进行过滤
    (1)语法和选项
    语法:
    #grep 选项 '关键字' 文件名
    (2)常见选项:
    options:
    -i: 不区分大小写
    -v: 查找不包括指定内容的行,反向选择
    -w: 按单词搜索
    -o:打印匹配关键字
    -c:统计匹配到的次数
    -n:显示行号
    -r:逐层遍历目录查找
    -A:显示匹配行及后面多少行
    -B:显示匹配行及前面多少行
    -C:显示匹配行及前后多少行
    -l: 只列出匹配的文件名
    -L:列出不匹配的文件名
    -e:使用正则匹配
    -E:使用扩展正则匹配
    ^key:以关键字开头
    key$:以关键字结尾
    ^$:匹配空行
    --color=auto:可以将找到的关键字部分加上颜色的显示
    (3)颜色显示(别名设置):
    临时设置:
    # alias grep = 'grep --color=auto' //只针对当前终端和当前用户生效
    永久设置:
    1)全局(针对所有用户生效)
    vi /etc/bashrc
    alias grep='grep --color=auto'
    source /etc/bashrc
    2)局部(针对具体的某个用户)
    vi ~/.bashrc
    alias grep='grep --color=auto'
    source ~/.bashrc
    (4)举例说明:
    grep -i root passwd   忽略大小写匹配包含root的行
    grep -w ftp passwd     精确匹配ftp单词
    grep -w hello passwd  精确匹配he11o单词;自己添加包含he1o的行到文件
    grep -wo ftp passwd   打印匹配到的关键字ftp
    grep -n root passwd    打印匹配到root关键字的行
    grep -ni root passwd  忽略大小写匹配统计包含关键字root的行
    grep -nic root passwd 忽略大小写匹配统计包含关键字root的行数
    grep -i ^root passwd  忽略大小写匹配以root开头的行
    grep bash$ passwd     四以bash结尾的行
    grep -n ^$ passwd        匹配空行并打印行号
    grep ^# /etc/vsftpd/vsftpd.conf  匹配以#号开头的行
    grep -V ^# /etc/vsftpd/vsftpd. conf 匹配不以#号开头的行
    grep -A 5 mail passwd   匹配包含mai1关键字及其后5行
    grep -B 5 mail passwd 匹配包含mai1关键字及其前5行
    grep -C 5 mail passwd 匹配包含mai1关键字及其前后5行


    实战
    1.具体需求:关键字部分能够一眼看到?

    cat /etc/passwd | grep --color=auto 'root'

    2.具体需求:简化上述代码,如何看到?

    3.具体需求:如何在下次登录,依旧可以看到?

    修改配置文件

    vi /etc/bash.bashrc

    最后添加
    alias grep='grep --color=auto'

    重新读取
    source /etc/bash.bashrc

    root用户下查看

    切换到test1用户下查看,依旧可以,说明实现了全局

    4.具体需求:查看多少行

    5.具体需求:查看某个关键字,不分大小写

    5.具体需求:以关键字开头查找

    6.具体需求:排除某个关键字查找

    7.具体需求:以关键字结尾

    8.具体需求:查看某个关键字的前3行

    9.具体需求:查看某个关键字的后3行

    10.具体需求:包含关键字的内容不全,所以要结合上下问去查看(查看某个关键字的前3行与后3行)

    11.具体需求:根据单词查找

    12.具体需求:只找关键字本身

  • 相关阅读:
    1. Go的安装和第一行代码
    合工大OJ 1344
    __int64与long long、long的区别
    合工大OJ 1343
    如何快速查找下载java项目所需jar包
    油田勘测(深度优先算法,广度优先算法)
    图的创建(邻接矩阵)
    五大常用算法总结
    前序遍历,中序遍历,后序遍历(树的深度优先算法),层序遍历(树的广度优先算法)
    IE CSS Hack
  • 原文地址:https://www.cnblogs.com/-lyr/p/12152565.html
Copyright © 2011-2022 走看看