Linux grep命令怎么使用
发表于:2024-10-27 作者:千家信息网编辑
千家信息网最后更新 2024年10月27日,这篇文章主要介绍了Linux grep命令怎么使用的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇Linux grep命令怎么使用文章都会有所收获,下面我们一起来看看吧。L
千家信息网最后更新 2024年10月27日Linux grep命令怎么使用
这篇文章主要介绍了Linux grep命令怎么使用的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇Linux grep命令怎么使用文章都会有所收获,下面我们一起来看看吧。
Linux常用命令grep是一种强大的文本搜索工具,它能使用正则表达式搜索文本,并把匹配的行打印出来。用于过滤/搜索的特定字符。可使用正则表达式能配合多种命令使用,使用上十分灵活。
grep
强大的文本搜索工具
选项
-a --text # 不要忽略二进制数据。 -A --after-context= # 除了显示符合范本样式的那一行之外,并显示该行之后的内容。 -b --byte-offset # 在显示符合范本样式的那一行之外,并显示该行之前的内容。 -B --before-context= # 除了显示符合样式的那一行之外,并显示该行之前的内容。 -c --count # 计算符合范本样式的列数。 -C --context=或- # 除了显示符合范本样式的那一列之外,并显示该列之前后的内容。 -d --directories= # 当指定要查找的是目录而非文件时,必须使用这项参数,否则grep命令将回报信息并停止动作。 -e --regexp= # 指定字符串作为查找文件内容的范本样式。 -E --extended-regexp # 将范本样式为延伸的普通表示法来使用,意味着使用能使用扩展正则表达式。 -f --file= # 指定范本文件,其内容有一个或多个范本样式,让grep查找符合范本条件的文件内容,格式为每一列的范本样式。 -F --fixed-regexp # 将范本样式视为固定字符串的列表。 -G --basic-regexp # 将范本样式视为普通的表示法来使用。 -h --no-filename # 在显示符合范本样式的那一列之前,不标示该列所属的文件名称。 -H --with-filename # 在显示符合范本样式的那一列之前,标示该列的文件名称。 -i --ignore-case # 忽略字符大小写的差别。 -l --file-with-matches # 列出文件内容符合指定的范本样式的文件名称。 -L --files-without-match # 列出文件内容不符合指定的范本样式的文件名称。 -n --line-number # 在显示符合范本样式的那一列之前,标示出该列的编号。 -P --perl-regexp # PATTERN 是一个 Perl 正则表达式 -q --quiet或--silent # 不显示任何信息。 -R/-r --recursive # 此参数的效果和指定"-d recurse"参数相同。 -s --no-messages # 不显示错误信息。 -v --revert-match # 反转查找。 -V --version # 显示版本信息。 -w --word-regexp # 只显示全字符合的列。 -x --line-regexp # 只显示全列符合的列。 -y # 此参数效果跟"-i"相同。 -o # 只输出文件中匹配到的部分。 -m --max-count= # 找到num行结果后停止查找,用来限制匹配行数
规则表达式
^ # 锚定行的开始 如:'^grep'匹配所有以grep开头的行。 $ # 锚定行的结束 如:'grep$' 匹配所有以grep结尾的行。 . # 匹配一个非换行符的字符 如:'gr.p'匹配gr后接一个任意字符,然后是p。 * # 匹配零个或多个先前字符 如:'*grep'匹配所有一个或多个空格后紧跟grep的行。 .* # 一起用代表任意字符。 [] # 匹配一个指定范围内的字符,如'[Gg]rep'匹配Grep和grep。 [^] # 匹配一个不在指定范围内的字符,如:'[^A-FH-Z]rep'匹配不包含A-R和T-Z的一个字母开头,紧跟rep的行。 \(..\) # 标记匹配字符,如'\(love\)',love被标记为1。 \ # 锚定单词的结束,如'grep\>'匹配包含以grep结尾的单词的行。 x\{m\} # 重复字符x,m次,如:'0\{5\}'匹配包含5个o的行。 x\{m,\} # 重复字符x,至少m次,如:'o\{5,\}'匹配至少有5个o的行。 x\{m,n\} # 重复字符x,至少m次,不多于n次,如:'o\{5,10\}'匹配5--10个o的行。 \w # 匹配文字和数字字符,也就是[A-Za-z0-9],如:'G\w*p'匹配以G后跟零个或多个文字或数字字符,然后是p。 \W # \w的反置形式,匹配一个或多个非单词字符,如点号句号等。 \b # 单词锁定符,如: '\bgrep\b'只匹配grep。
grep命令常见用法
在文件中搜索一个单词,命令会返回一个包含 "match_pattern" 的文本行:
grep match_pattern file_name grep "match_pattern" file_name
在多个文件中查找:
grep "match_pattern" file_1 file_2 file_3 ...
输出除之外的所有行 -v 选项:
grep -v "match_pattern" file_name
标记匹配颜色 –color=auto 选项:
grep "match_pattern" file_name --color=auto
使用正则表达式 -E 选项:
grep -E "[1-9]+" # 或 egrep "[1-9]+"
使用正则表达式 -P 选项:
grep -P "(\d{3}\-){2}\d{4}" file_name
只输出文件中匹配到的部分 -o 选项:
echo this is a test line. | grep -o -E "[a-z]+\."line.echo this is a test line. | egrep -o "[a-z]+\."line.
统计文件或者文本中包含匹配字符串的行数 -c 选项:
grep -c "text" file_name
输出包含匹配字符串的行数 -n 选项:
grep "text" -n file_name# 或cat file_name | grep "text" -n#多个文件grep "text" -n file_1 file_2
打印样式匹配所位于的字符或字节偏移:
echo gun is not unix | grep -b -o "not"7:not#一行中字符串的字符便宜是从该行的第一个字符开始计算,起始值为0。选项 **-b -o** 一般总是配合使用。
搜索多个文件并查找匹配文本在哪些文件中:
grep -l "text" file1 file2 file3...
grep递归搜索文件
在多级目录中对文本进行递归搜索:
grep "text" . -r -n# .表示当前目录。
忽略匹配样式中的字符大小写:
echo "hello world" | grep -i "HELLO"# hello
选项 -e 制动多个匹配样式:
echo this is a text line | grep -e "is" -e "line" -oisline#也可以使用 **-f** 选项来匹配多个样式,在样式文件中逐行写出需要匹配的字符。cat patfileaaabbbecho aaa bbb ccc ddd eee | grep -f patfile -o
在grep搜索结果中包括或者排除指定文件:
# 只在目录中所有的.php和.html文件中递归搜索字符"main()"grep "main()" . -r --include *.{php,html}# 在搜索结果中排除所有README文件grep "main()" . -r --exclude "README"# 在搜索结果中排除filelist文件列表里的文件grep "main()" . -r --exclude-from filelist
使用0值字节后缀的grep与xargs:
# 测试文件:echo "aaa" > file1echo "bbb" > file2echo "aaa" > file3grep "aaa" file* -lZ | xargs -0 rm# 执行后会删除file1和file3,grep输出用-Z选项来指定以0值字节作为终结符文件名(\0),xargs -0 读取输入并用0值字节终结符分隔文件名,然后删除匹配文件,-Z通常和-l结合使用。
grep静默输出:
grep -q "test" filename# 不会输出任何信息,如果命令运行成功返回0,失败则返回非0值。一般用于条件测试。
打印出匹配文本之前或者之后的行:
# 显示匹配某个结果之后的3行,使用 -A 选项:seq 10 | grep "5" -A 35678# 显示匹配某个结果之前的3行,使用 -B 选项:seq 10 | grep "5" -B 32345# 显示匹配某个结果的前三行和后三行,使用 -C 选项:seq 10 | grep "5" -C 32345678# 如果匹配结果有多个,会用"--"作为各匹配结果之间的分隔符:echo -e "a\nb\nc\na\nb\nc" | grep a -A 1ab--ab
关于"Linux grep命令怎么使用"这篇文章的内容就介绍到这里,感谢各位的阅读!相信大家对"Linux grep命令怎么使用"知识都有一定的了解,大家如果还想学习更多知识,欢迎关注行业资讯频道。
文件
字符
样式
范本
搜索
内容
多个
命令
结果
文本
表达式
输出
正则
信息
单词
字符串
一行
参数
名称
字节
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
seer数据库挖掘医学方
仪器软件开发多少元
用友数据库在哪
信息技术网络技术应用会考真题
昌邑软件开发初级教程在线学习
500应用服务器可能出现异常
武汉有实力的软件开发
丽水口碑好的网络技术哪家好
应用程序服务器 xp
软件开发工程师咋样
税控盘连接服务器失败
成都软件开发外包公司
网络安全法律实施顺序
什么是网络安全意识
怎么将自己电脑作为svn服务器
哈工大数据库系统实验2
网络安全等级保护没做的后果
数据库中怎么复制
日本网络安全产品
墨子数据库
泰拉瑞亚进入自己的服务器
我的世界基岩版服务器刷钻石办法
sqlite3数据库工具
如何把excel表格做成数据库
上海力谱云软件开发
皮皮虾软件开发商
esg数据库
南京汽车自动气候控制软件开发
数据库差值
山东省网络安全周部署会讲话