Linux:grep命令

来自WHY42

多个关键字

grep -E 'GET|POST' log.txt
egrep 'GET|POST' log.txt

正则表达式

grep -c "48" test.txt # 统计所有以“48”字符开头的行有多少
grep -i "May" test.txt # 不区分大小写查找“May”所有的行)
grep -n "48" test.txt # 显示行号;显示匹配字符“48”的行及行号,相同于 nl test.txt # |grep 48)
grep -v "48" test.txt # 显示输出没有字符“48”所有的行)
grep "471" test.txt # 显示输出字符“471”所在的行)
grep "48;" test.txt # 显示输出以字符“48”开头,并在字符“48”后是一个tab键所在的行
grep "48[34]" test.txt # 显示输出以字符“48”开头,第三个字符是“3”或是“4”的所有的行)
grep "^[^48]" test.txt # 显示输出行首不是字符“48”的行)
grep "[Mm]ay" test.txt # 设置大小写查找:显示输出第一个字符以“M”或“m”开头,以字符“ay”结束的行)
grep "K…D" test.txt # 显示输出第一个字符是“K”,第二、三、四是任意字符,第五个字符是“D”所在的行)
grep "[A-Z][9]D" test.txt # 显示输出第一个字符的范围是“A-D”,第二个字符是“9”,第三个字符的是“D”的所有的行
grep "[35]..1998" test.txt # 显示第一个字符是3或5,第二三个字符是任意,以1998结尾的所有行
grep "4\{2,\}" test.txt # 模式出现几率查找:显示输出字符“4”至少重复出现两次的所有行
grep "9\{3,\}" test.txt # 模式出现几率查找:显示输出字符“9”至少重复出现三次的所有行
grep "9\{2,3\}" test.txt # 模式出现几率查找:显示输出字符“9”重复出现的次数在一定范围内,重复出现2次或3次所有行
grep -n "^$" test.txt # 显示输出空行的行号
ls -l |grep "^d" 如果要查询目录列表中的目录 同:ls -d *
ls -l |grep "^d[d]" 在一个目录中查询不包含目录的所有文件
ls -l |grpe "^d…..x..x" 查询其他用户和用户组成员有可执行权限的目录集合

其他

grep -i pattern files #不区分大小写地搜索。默认情况区分大小写,
grep -l pattern files #只列出匹配的文件名,
grep -L pattern files #列出不匹配的文件名,
grep -w pattern files #只匹配整个单词,而不是字符串的一部分(如匹配‘magic’,而不是‘magical’),

grep -C number pattern files :匹配的上下文分别显示[number]行