• 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.具体需求:只找关键字本身

  • 相关阅读:
    log4net Config Examples
    求解:Nhibernate Unknown entity class 的解决办法
    复制Oracle表的结构
    Linux下安装MySQL并为其创建新用户图解教程
    windows下使用ffmpeg进行视频转码,图片拉取的Java测试代码
    Linux下安装Nginx详细图解教程
    Linux下安装Memcached图解教程
    Linux下使用Yum安装ffmpeg
    图解Java中如何将Jar文件打包成exe文件
    Java中实现系统托盘功能(代码全贴,附加运行截图)
  • 原文地址:https://www.cnblogs.com/-lyr/p/12152565.html
Copyright © 2020-2023  润新知