Linux grep命令的使用场景

man grep得到下列信息正常输出: 输出含有指定字符串的全部行。-v, –invert-match: 反向操作,输出不含有指定字符串的全部行。-c, —

很多朋友对于Linux grep命令的使用场景和不太懂,今天就由小编来为大家分享,希望可以帮助到大家,下面一起来看看吧!

当grep 命令参数为文件时: grep [选项1] [选项2] [选项n] [要查找的字符串] [参数1(文件1)] [参数2(文件2)] [参数n(文档) n)]。如果grep理解为find的话,就是:在一个文件或者多个文件里面查找一个字符串。当grep 的命令参数为目录时, grep -r 或-R [选项1] [选项2] [选项n] [a 为搜索字符串] [参数1(目录1)] [参数2(目录2) )] [参数n(目录n)]。

find命令和grep命令的区别

find 命令搜索文件名或目录名中的指定字符串。一般来说,find命令的输出是找到的文件名或目录名。

grep 命令在文件内容或标准输入中搜索指定的字符串。但grep的输出结果并不一定是找到的字符串,而是根据不同的命令选项有不同的输出。例如,在普通输出模式下,将输出所有包含指定字符串的行,添加-l命令选项将输出输出所有包含指定字符串的文件等。

正常输出模式: 输出含指定字符串的全部行

root@hgdm:~/examples# cat grep_data.txt 一个人穿着椰壳雨衣划船独自在冰冷的河水里钓鱼。花间一壶酒,独酌无相亲。岸边细草微风习习,夜孤舟险筏。落叶的洋树,冷光下的寂寞夜。海有知音,天地有邻。战事持续三个月,一封家书价值万金。红豆生长在南国,春天一到,就会抽出几根枝条。 # 输出所有包含“lone”一词的行root@hgdm:~/examples# grep ‘lone’ grep_data.txt 一个披着椰壳、戴着帽子的男人独自在船上,在冰冷的河水里独自在雪地里钓鱼。花间一壶酒,独酌无相亲。岸边细草微风习习,夜孤舟险筏。落叶的洋树,冷光下的寂寞夜。 grep 常规输出模式

选项-v: 输出不含指定字符串的全部行

root@hgdm:~/examples# cat grep_data.txt 一个人穿着椰壳雨衣划船独自在冰冷的河水里钓鱼。花间一壶酒,独酌无相亲。岸边细草微风习习,夜孤舟险筏。落叶的洋树,冷光下的寂寞夜。海中有知音,天地有邻。战事持续三个月,一封家书价值万金。红豆生长在南国,春天一到,就会抽出几根枝条。 # 逆向操作,输出所有不带“lone”字样的行root@hgdm:~/examples# grep -v ‘lone’ grep_data.txt 海中之友,亲如邻里。战事持续三个月,一封家书价值万金。红豆生长在南国,春天一到,就会抽出几根枝条。 grep -v 反选操作

Linux grep命令的使用场景

选项-c: 输出有几行

root@hgdm:~/examples# cat grep_data.txt 一个戴着椰壳雨帽的男人在冰冷的雪地里独自钓鱼。花间一壶酒,独酌无相亲。岸边细草微风习习,夜孤舟险筏。落叶的洋树,冷光下的寂寞夜。海有知音,天地有邻。战事持续三个月,一封家书价值万金。红豆生长在南国,春天一到,就会抽出几根枝条。 # 总共有4 行包含单个字符,因此输出为4root@hgdm:~/examples# grep -c ‘lone’ -n grep_data.txt 4grep -c 输出行数

选项-l: 输出内容含指定字符串的全部文件

root@hgdm:~/examples/temp# cat data1.txt 一个戴着椰壳雨帽的男人独自在冰冷的河水中钓鱼。花间一壶酒,独酌无相亲。 root@hgdm:~/examples/temp# cat data2.txt 草细岸边微风吹,筏险夜孤舟。落叶的洋树,冷光下的寂寞夜。 # 查找当前目录下所有包含单个字符的文件名root@hgdm:~/examples/temp# grep -lR ‘lone’ ././data1.txt./data2.txtroot@hgdm:~/examples/temp# grep -lR -Z ‘孤独’ ./|花间一壶酒,独酌无相亲。岸边细草微风习习,夜孤舟险筏。落叶的洋树,冷光下的寂寞夜。 grep -lR -Z

选项-o: 仅仅输出指定的字符串

root@hgdm:~/examples# cat grep_data.txt 一个戴着椰壳雨帽的男人在冰冷的雪地里独自钓鱼。花间一壶酒,独酌无相亲。岸边细草微风习习,夜孤舟险筏。落叶的洋树,冷光下的寂寞夜。海有知音,天地有邻。战事持续三个月,一封家书价值万金。红豆生长在南国,春天一到,就会抽出几根枝条。 # 只输出文件中所有唯一字符,而不输出包含唯一字符的行root@hgdm:~/examples# grep -o ‘lone’ grep_data.txt unique grep -o

当grep的参数是文件和stdin组合时

Linux grep命令的使用场景

root@hgdm:~/examples# echo -e ‘独自在异乡,陌生人\n照顾好自己’ 独自在异乡,陌生人,照顾好自己root@hgdm:~/examples# cat grep_data .txt 一个人背着蓑衣,独自在寒冷的江雪里钓鱼。花间一壶酒,独酌无相亲。岸边细草微风习习,夜孤舟险筏。落叶的洋树,冷光下的寂寞夜。海有知音,天地有邻。战事持续三个月,一封家书价值万金。红豆生长在南国,春天一到,就会抽出几根枝条。 root@hgdm:~/examples# echo -e ‘异乡的外国人\n独自一人’ | grep ‘Alone’ – grep_data.txt(标准输入):异国他乡的异乡人(标准输入):独自一人grep_data.txt: 一个穿着蓑衣的男人孤舟一人,在冰冷的河水里独自钓鱼。 grep_data.txt:花间一壶酒,独酌无相亲。 grep_data.txt: 岸边草稀,微风徐徐,夜里独木舟危险。 grep_data.txt: 异乡的落叶树,冷灯下的夜晚独自一人。当grep的参数是file和stdin的组合时

当需找两个或两个以上的指定字符串时

上面的例子都是在文件或标准输入中搜索指定的字符串。有时,需要在文件或标准输入中搜索两个或多个指定的字符串。

语法为: grep -e ‘待查找的字符串1’ -e ‘待查找的字符串2’ -e ‘待查找的字符串3’

root@hgdm:~/ls_data# cat file1.txt 一个人穿着蓑衣雨衣划船独自在冰冷的河水里钓鱼。海有知音,天地有邻。 root@hgdm:~/ls_data#cat file2.txt 花间一壶酒,独酌无相亲。战事持续三个月,一封家书价值万金。 root@hgdm:~/ls_data#cat file3.txt 岸边草细风轻,筏险夜孤舟。野天树低,江上明月近人。 root@hgdm:~/ls_data# grep -e ‘古州’ -e ‘一壶酒’ -e ‘野矿’ -e ‘天涯’ file1.txt file2.txt file3.txt file1.txt: 孤舟蓑衣和一个戴着帽子的男人。寒冷的河里钓鱼雪。 file1.txt:大海有亲密的朋友,天涯海角我们也是邻居。 file2.txt:花间一壶酒,独酌无相亲。 file3.txt:天阔树低,河水清月近人。 grep -e 指定查找多个字符串

当待找的指定字符串是一个正则表达式时

当您需要完全使用正则表达式时,请使用grep -E 或egrep 命令。

Linux grep命令的使用场景

root@hgdm:~/ls_data# echo -e ‘戴帽子戴帽子的孤独船夫独自钓鱼雪\n2022最好’汉江雪地戴帽子戴帽子的船独自钓鱼2022 bestroot @hgdm:~/ls_data# echo -e ‘一人独戴笠帽一人钓鱼一人一船蓑衣\n汉江雪地一人钓鱼\n2022最好的’ | @hgdm:~/ls_data# grep -E ‘[0-9]+’2022 最好的root@hgdm:~/ls_data# echo -e ‘一船椰壳男\n寒河雪中独钓\n2022 最好’ | egrep ‘[0-9]+’2022 最好的grep -E 和egrep

当grep的参数是含有通配符*的文件名时

root@hgdm:~/ls_data# lsdir1 dir2 dir3 file1.txt file2.txt file3.txtroot@hgdm:~/ls_data# cat file* 一个人在船上拿着椰壳,独自在寒冷的河水里的雪地里钓鱼。海有知音,天地有邻。花间一壶酒,独酌无相亲。战事持续三个月,一封家书价值万金。岸边细草微风习习,夜孤舟险筏。野天树低,江上明月近人。 # *file* 匹配file1.txt file2.txt file3.txtroot@hgdm:~/ls_data# grep ‘lone’ *file*file1.txt: 一个戴着椰壳雨衣帽子的男人独自在寒冷的河里钓鱼。 file2.txt:花间一壶酒,独酌无相亲。 file3.txt:岸边草稀微风徐徐,船夜载险筏。 *文件* 匹配file1.txt file2.txt file3.txt

如何让ls命令只列出目录或文件

# 仅列出目录ls -l | 010-1010 # 仅列出目录grep ‘^d’ # 仅列出文件ls -l | grep ‘^-‘ 上述命令执行结果如下

用户评论

Linux grep命令的使用场景
作业是老师的私生子

这篇文章写的真好!我一直想学习使用grep命令,但是总是不知道应该从哪里开始。这个博文很好的介绍了linux grep命令的使用场景,我感觉自己马上就能上手使用了!感谢作者分享这份宝贵资源!

    有19位网友表示赞同!

Linux grep命令的使用场景
采姑娘的小蘑菇

grep命令确实很强大啊,可以用它快速定位代码中的特定字符串,不过说实话学起来有点绕。这篇博文的实例讲解还是比较容易理解的,学习了一点新知识,谢谢作者!

    有17位网友表示赞同!

Linux grep命令的使用场景
♂你那刺眼的温柔

grep 命令虽然功能强大,但有时候用在错的地方反而会效率低下,这篇文章提到的使用场景让我受益良多,以后要好好留意一下!

    有16位网友表示赞同!

Linux grep命令的使用场景
寂莫

这篇博文真的太实用了!经常需要从大量日志文件中查找特定信息,grep命令简直是我的救星。感谢作者的分享!

    有9位网友表示赞同!

Linux grep命令的使用场景
剑已封鞘

我用Linux已经好多年了,没想到grep命令还有这么多应用场景!受益匪浅啊,以后可以好好学习一下了。

    有20位网友表示赞同!

Linux grep命令的使用场景
青瓷清茶倾城歌

文章写的挺详细,但感觉有点过于基础了,对于已经熟悉Linux命令的用户来说可能没什么新意吧。希望作者能写一些更深入的主题例如结合正则表达式的使用技巧等等。

    有12位网友表示赞同!

Linux grep命令的使用场景
孤自凉丶

grep 命令真的是一个必备技能啊!这篇文章讲解的很通俗易懂,即使是编程小白也能看明白。太感谢作者了!

    有8位网友表示赞同!

Linux grep命令的使用场景
请在乎我1秒

说句老实话,grep命令有时候实在太复杂了,各种选项组合让人头疼。希望以后能看到更简化的使用方法或工具,让学习更轻松一些。

    有15位网友表示赞同!

Linux grep命令的使用场景
鹿先森,教魔方

我觉得这篇博文提到的 grep 命令的使用场景 太少了,实际应用中还有很多其他情况,例如数据挖掘、文本分析等等,希望作者能补充更多的内容。

    有11位网友表示赞同!

Linux grep命令的使用场景
有一种中毒叫上瘾成咆哮i

我一直觉得grep命令太复杂了,没想到它也有这么多应用场景,让我对这款工具有了更深的认识。

    有20位网友表示赞同!

Linux grep命令的使用场景
开心的笨小孩

这篇博文介绍的确实很有用! grep 命令在文件操作中太方便了,学习以后工作效率肯定能提高不少!

    有6位网友表示赞同!

Linux grep命令的使用场景
黑夜漫长

虽然这篇博文已经详细介绍了 Linux grep 命令的使用场景,但我还是感觉有待加强,例如在实际应用中的案例分析和常见问题解答等等,希望作者能够继续完善.

    有11位网友表示赞同!

Linux grep命令的使用场景
堕落爱人!

这篇文章讲得很清楚!以前总是觉得 grep 命令很复杂,现在看明白了,以后可以试试用它来优化一下我的工作流程了!

    有9位网友表示赞同!

Linux grep命令的使用场景
墨城烟柳

grep 命令的学习道路还真是漫长啊!不过 这篇博文让我开始踏上学习它的征程了!谢谢作者的分享。

    有11位网友表示赞同!

Linux grep命令的使用场景
如梦初醒

Linux grep 命令的使用场景很多,这篇文章只是揭开了它小小的冰山一角。 我决定以后多练习一下,把 grep 命令玩转!

    有11位网友表示赞同!

Linux grep命令的使用场景
巷雨优美回忆

对于初学者来说,这篇博文介绍的很全面,从基础到应用场景都讲得很清楚。我感觉自己离使用 grep 命令越来越近了

    有16位网友表示赞同!

Linux grep命令的使用场景
孤廖

这篇文章里提到的 grep 命令的使用场景确实是我经常会遇到的一些问题,学习它不仅能提高工作效率,也能让我们在 Linux 系统中更加得心应手!

    有16位网友表示赞同!

Linux grep命令的使用场景
盲从于你

grep 命令的确很重要,但是我也觉得一些复杂的选项还是让人比较头疼。希望以后的文章能更加简化,更容易理解!

    有14位网友表示赞同!

原创文章,作者:小su,如若转载,请注明出处:https://www.sudun.com/ask/197746.html

(0)
小su的头像小su
上一篇 4小时前
下一篇 4小时前

相关推荐

发表回复

您的电子邮箱地址不会被公开。 必填项已用 * 标注