写点什么

Linux grep 命令详解,手把手教你写

作者:程序媛可鸥
  • 2022 年 3 月 18 日
  • 本文字数:1035 字

    阅读完需:约 3 分钟

  • -l 或 --file-with-matches?: 列出文件内容符合指定的样式的文件名称。

  • -L 或 --files-without-match?: 列出文件内容不符合指定的样式的文件名称。

  • -n 或 --line-number?: 在显示符合样式的那一行之前,标示出该行的列数编号。

  • -o 或 --only-matching?: 只显示匹配 PATTERN 部分。

  • -q 或 --quiet 或--silent?: 不显示任何信息。

  • **\



-r 或 --recursive**?: 此参数的效果和指定"-d recurse"参数相同。


  • -s 或 --no-messages?: 不显示错误信息。

  • -v 或 --revert-match?: 显示不包含匹配文本的所有行。

  • -V 或 --version?: 显示版本信息。

  • -w 或 --word-regexp?: 只显示全字符合的列。

  • -x --line-regexp?: 只显示全列符合的列。

  • -y?: 此参数的效果和指定"-i"参数相同。


用法示例




1、在当前目录中,查找后缀有 file 字样的文件中包含 test 字符串的文件,并打印出该字符串的行。此时,可以使用如下命令:


grep test *file


结果如下所示:


$ grep test test* #查找前缀有“test”的文件包含“test”字符串的文件


testfile1:This a Linux testfile! #列出 testfile1 文件中包含 test 字符的行


testfile_2:This is a linux testfile! #列出 testfile_2 文件中包含 test 字符的行


testfile_2:Linux test #列出 testfile_2 文件中包含 test 字符的行


2、以递归的方式查找符合条件的文件。例如,查找指定目录/etc/acpi 及其子目录(如果存在子目录的话)下所有文件中包含字符串"update"的文件,并打印出该字符串所在行的内容,使用的命令为:


grep -r update /etc/acpi


输出结果如下:


$ grep -r update /etc/acpi #以递归的方式查找“etc/acpi”


#下包含“update”的文件


/etc/acpi/ac.d/85-anacron.sh:# (Things like the slocate updatedb cause a lot of IO.)


Rather than


/etc/acpi/resume.d/85-anacron.sh:# (Things like the slocate updatedb cause a lot of


IO.) Rather than


/etc/acpi/events/thinkpad-cmos:action=/usr/sbin/thinkpad-keys--update


3、反向查找。前面各个例子是查找并打印出符合条件的行,通过"-v"参数可以打印出不符合条件行的内容。


查找文件名中包含 test 的文件中不包含 test 的行,此时,使用的命令为:


现在能在网上找到很多很多的学习资源,有免费的也有收费的,当我拿到 1 套比较全的学习资源之前,我并没着急去看第 1 节,我而是去审视这套资源是否值得学习,有时候也会去问一些学长的意见,如果可以之后,我会对这套学习资源做 1 个学习计划,我的学习计划主要包括规划图和学习进度表。


分享给大家这份我薅到的免费视频资料,质量还不错,大家可以跟着学习



用户头像

Python编程资料加Q群免费领取:419829237 2022.03.14 加入

还未添加个人简介

评论

发布
暂无评论
Linux grep命令详解,手把手教你写_Python_程序媛可鸥_InfoQ写作平台