您的位置:首页 > 运维架构 > Shell

linux shell grep 常用命令总结

2017-06-01 20:28 519 查看
grep命令作为Unix中用于文本搜索的神奇工具,能够接受正则表达式,生成各种格式的输出

* grep pattern filename   搜索包含pattern模式的特定行在filename文件内
* echo -e "this is a word\nnext line" | grep word    从stdin中读取并查找
* grep "match_text" file1 file2 file3 ...   单个grep命令也可以对多个文件进行搜索
* grep word filename
--color=auto    用--color选项可以在输出行中着重标记出匹配到的单词
* grep -E/egrep "[a-z]+" filename   正则表达式匹配
* echo this is a line. | egrep
-o "[a-z]+\." 选项-o  只输出文件中匹配到的文本部分
* grep -v match_pattern file    要打印除包含match_pattern行之外的所有行( 选项-v可以将匹配结果进行反转)
* grep -c "text" filename  选项-c 即count 统计匹配的行数
* echo -e "1 2 3 4\nhello\n5 6" | egrep -o "[0-9]" | wc -l   要文件中统计匹配项的数量
* cat sample1.txt | grep linux
-n  打印行号
* echo gnu is not unix | grep
-b -o "not"  选项-b 和 -o通常一起使用 ,打印匹配字节的偏移量
* grep -l/-h linux sample1.txt sample2.txt   选项-l 打印匹配的文件名,-L则相反 -h为隐藏文件名输出,只输出匹配内容
* grep "text" .
-R -n 递归搜索文件夹下文本内容
* echo hello world | grep
-i "HELLO" 选项-i 忽略大小写
* grep -e "pattern1"
-e "pattern" 选项-e可以支持多个匹配样式 互相之间是“或”的关系
* grep -f
pattern_filesource_filename  选项 -f 读取样式文件,把样式模式放在文件中
* grep "main()" .
-r --include *.{c,cpp}  选项 -r 递归搜索,--include 制定文件搜索, *.{c,cpp} 相当于 *.c *.cpp
* grep "main()" . -r --exclude "README"  选项 --exclude 是排除搜索 ,--exclude-dir 是排除的文件夹  --exclude-from FILE 从文件中读取排除的文件列表
* grep "test" file* -lZ | xargs -0 rm 选项-l 为打印匹配的文件 -Z 为使用0作为文件列表的分隔符,xargs -0读取并用0作为文件名的分隔符,用0是为了防止文件名中有空格
* grep -q "pattern" filename  选项-q(quiet)为静默输出,不打印匹配内容,可以利用返回值判断是否匹配
* grep "pattern" -A/-B/-C 2 filename 选项 -A(after) 打印出之后的n行 -B(before)打印之前的n行  -C (center)打印前后的n行
* cat text2.txt | grep -E 'm(ai)n=\1'  如果()内匹配了ai 则 \1为ai
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息