grep:(global search regular expression(RE) and print out the line,全面搜索正则表达式并把行打印出来)是一种强大的文本搜索工具,它能使用正则表达式搜索文本,并把匹配的行打印出来。
语法: grep '要查找的内容' 文件名
范例: grep 'test' test1.txt test2.txt 在test1.txt test2.txt两个文件中查找test并打印出来。
参数:
-v:输出除了查找内容外的内容。
范例:grep -v 'test' test.txt 打印test.txt文件中不是test的内容。
-E:使用正则表达式 -E 选项:
范例:grep -E '[a-z]+' test.txt 打印test.txt文件中符合正则的内容。
-o:只输出文件中匹配到的部分 -o 选项:
范例:echo this is a test line. | grep -o -E "[a-z]+\." echo this is a test line. | egrep -o "[a-z]+\."
-c:统计文件或者文本中包含匹配字符串的行数(有几行):
范例:grep -c 'test' test.txt 输出test.txt文件中出现字符串test 的次数。
-n:输出包含匹配字符串在文本的第几行并输出字符串:
范例:grep -n 'test' test.txt 输出test字符串在test.txt文本的第几行。
-I:搜索多个文件并查找匹配文本在哪些文件中,打印出文件名:
范例:grep -I 'test' test.txt test1.txt 搜索test字符串在那个文件中,并打印出文件名。
-i:忽略匹配样式中的字符大小写:
范例:grep -i "HELLO" test.txt 不区分大小写的test.txt文件中查找hello字符串。
在多级目录中对文本进行递归搜索:
范例:grep -r -n 'test' . 在当前目录及子目录下查找字符串test并打印有test字符串的文件路径、文件名 在文件的第几行, 点 . 表示当前目录。