linux grep命令的使用(待补充)

    技术2022-07-13  78

    1、grep 命令的介绍

    grep 命令是一种强大的文件和文本搜索工具,它能使用正则表达式搜索文本,并把匹配的行打印出来。

    grep 全称是Global Regular Expression Print ,表示全局正则表达式版本,它的使用权限是所有用户。

    Unix的grep家族包括grep、egrep和fgrep。egrep和fgrep的命令只跟grep有很小不同。

    egrep 是grep的扩展,支持更多的re元字符;

    fgrep 就是fixed grep或fast grep,它们把所有的字母都看作单词,也就是说,正则表达式中的元字符表示回其自身的字面意义,不再特殊。

    linux使用GNU版本的grep,它功能更强,可以通过-G、-E、-F命令行选项来使用egrep和fgrep的功能。

    2、文件字符搜索

    grep能够快速的对文件进行搜索,命令和参数都比较好理解:

    grep [-acinv] [--color=auto] '搜寻字符串' [filename]

    选项与参数:

    -a :搜索文件名称为text 文件中的方式搜寻数据 -c :计算找到 ‘搜寻字符串’ 的次数 -i :忽略大小写的不同,所以大小写视为相同 -n :顺便输出行号 -v :反向选择,即显示出没有 ‘搜寻字符串’ 内容的那一行! –color=auto :可以将找到的关键词部分加上颜色的显示喔!

    实例:

    # 查找以md结尾的文件中,包含 zhangsan 字符串的文件中,并打印出该字符串的行 grep zhangsan *md # 查找前缀有“mysql”的文件包含“test”字符串的行 grep test mysql*

    3、 -v 排除,不包含。

    grep -v Thomas 查找不包含 Thomas 的所有行

    [root@localhost test]# cat employee.txt # employee.txt 所有的行 100 Thomas Manager Sales $5,000 200 Jason Developer Technology $5,500 300 Raj Sysadmin Technology $7,000 400 Nisha Manager Marketing $9,500 500 Randy Manager Sales $6,000 [root@localhost test]# cat employee.txt | grep -v Thomas # 不包含 Thomas 的所有行 200 Jason Developer Technology $5,500 300 Raj Sysadmin Technology $7,000 400 Nisha Manager Marketing $9,500 500 Randy Manager Sales $6,000 [root@localhost test]# grep -v Thomas employee.txt 200 Jason Developer Technology $5,500 300 Raj Sysadmin Technology $7,000 400 Nisha Manager Marketing $9,500 500 Randy Manager Sales $6,000

    cat employee.txt | grep -v Thomas 和 grep -v Thomas employee.txt 命令是等价的。

    Processed: 0.015, SQL: 9