shell - grep

◎参数

1. -A NUM,--after-context=NUM
除了列出符合行之外,并且列出后NUM行。

ex:   $  grep  -A 1  panda file
(从file中搜寻有panda样式的行,并显示该行的后1行)

2. -a 或--text
grep原本是搜寻文字文件,若拿二进制的档案作为搜寻的目标,
则会显示如下的讯息: Binary file 二进制文件名 matches  然后结束。

若加上-a 参数则可将二进制档案视为文本文件搜寻,
相当于--binary-files=text 这个参数。

ex:    (从二进制档案mv中去搜寻panda样式)
(错误!!!)
$  grep  panda mv
Binary file mv matches
(这表示此档案有match之处,详见--binary-files=TYPE )
$
(正确!!!)
$  grep  -a  panda mv

3. -B NUM,--before-context=NUM
与 -A NUM 相对,但这此参数是显示除符合行之外
并显示在它之前的NUM行。

ex:    (从file中搜寻有panda样式的行,并显示该行的前1行)
$  grep  -B 1  panda file

4. -C [NUM], -NUM, --context[=NUM]
列出符合行之外并列出上下各NUM行,默认值是2。

ex:    (列出file中除包含panda样式的行外并列出其上下2行)
(若要改变默认值,直接改变NUM即可)
$  grep  -C[NUM]  panda file

5. -b, --byte-offset
列出样式之前的内文总共有多少byte ..

ex:  $  grep  -b  panda file
显示结果类似于:
   0:panda
66:pandahuang
123:panda03

6. --binary-files=TYPE
此参数TYPE预设为binary(二进制),若以普通方式搜寻,只有2种结果:
1.若有符合的地方:显示Binary file 二进制文件名 matches
2.若没有符合的地方:什么都没有显示。

若TYPE为without-match,遇到此参数,
grep会认为此二进制档案没有包含任何搜寻样式,与-I  参数相同。

若TPYE为text, grep会将此二进制文件视为text档案,与-a  参数相同。

Warning : --binary-files=text 若输出为终端机,可能会产生一些不必要的输出。

7. -c, --count
不显示符合样式行,只显示符合的总行数。
若再加上-v,--invert-match ,参数显示不符合的总行数。

8. -d ACTION, --directories=ACTION
若输入的档案是一个资料夹,使用ACTION去处理这个资料夹。
预设ACTION是read(读取),也就是说此资料夹会被视为一般的档案;
若ACTION是skip(略过),资料夹会被grep略过:
若ACTION是recurse(递归),grep会去读取资料夹下所有的档案,
此相当于-r 参数。

9.  -E, --extended-regexp
采用规则表示式去解释样式。

10.  -e PATTERN, --regexp=PATTERN
把样式做为一个partern,通常用在避免partern用-开始。

11.  -f FILE, --file=FILE
事先将要搜寻的样式写入到一个档案,一行一个样式。
然后采用档案搜寻。
空的档案表示没有要搜寻的样式,因此也就不会有任何符合。

ex: (newfile为搜寻样式文件)
$ grep  -f  newfile file

12.  -G, --basic-regexp
将样式视为基本的规则表示式解释。(此为预设)

13.  -H, --with-filename
在每个符合样式行前加上符合的文件名称,若有路径会显示路径。

ex: (在file与testfile中搜寻panda样式)
$ grep  -H  panda file ./testfile
file:panda
./testfile:panda
$

14.  -h, --no-filename
与-H参数相类似,但在输出时不显示路径。

15.  --help
产生简短的help讯息。

16.  -I
grep会强制认为此二进制档案没有包含任何搜寻样式,
与--binary-files=without-match 参数相同。

ex:  $  grep  -I  panda mv

17.  -i, --ignore-case
忽略大小写,包含要搜寻的样式及被搜寻的档案。

ex:  $  grep  -i  panda mv

18.  -L, --files-without-match
不显示平常一般的输出结果,反而显示出没有符合的文件名称。

19.  -l, --files-with-matches
不显示平常一般的输出结果,只显示符合的文件名称。

20.  --mmap
如果可能,使用mmap系统呼叫去读取输入,而不是预设的read系统呼叫。
在某些状况,--mmap 能产生较好的效能。 然而,--mmap
如果运作中档案缩短,或I/O 错误发生时,
可能造成未定义的行为(包含core dump),。

21.  -n, --line-number
在显示行前,标上行号。

ex:  $  grep  -n  panda file
显示结果相似于下:
行号:符合行的内容

22.  -q, --quiet, --silent
不显示任何的一般输出。请参阅-s或--no-messages

23.  -r, --recursive
递归地,读取每个资料夹下的所有档案,此相当于 -d recsuse 参数。

24.  -s, --no-messages
不显示关于不存在或无法读取的错误讯息。

小注: 不像GNU grep,传统的grep不符合POSIX.2协议,
因为缺乏-q参数,且他的-s 参数表现像GNU grep的 -q 参数。
Shell Script倾向将传统的grep移植,避开-q及-s参数,
且将输出限制到/dev/null。

POSIX: 定义UNIX及UNIX-like系统需要提供的功能。

25.  -V, --version
显示出grep的版本号到标准错误。
当您在回报有关grep的bugs时,grep版本号是必须要包含在内的。

26.  -v, --invert-match
显示除搜寻样式行之外的全部。

27.  -w, --word-regexp
将搜寻样式视为一个字去搜寻,完全符合该"字"的行才会被列出。

28.  -x, --line-regexp
将搜寻样式视为一行去搜寻,完全符合该"行"的行才会被列出。

Shell 编程-Shell三剑客 Grep 学习 今天给伙伴们分享一下Shell 编程-Shell三剑客Grep,希望看了有所收获。 阅读详情

相关推荐

基于PLC1200与CB1241的RS485从站Modbus Rtu通信实战指南

本文提供了一份详细的西门子S7-1200 PLC与CB1241 RS485通讯板实现Modbus RTU从站通信的实战指南。内容涵盖从硬件接线、博途软件组态、关键参数设置到程序调试与测试的全过程,重点解析了Modbus_Slave指令配置与数据块映射,帮助工程师快速掌握工业自动化系统中的数据采集与设备接入技术。

Apple的专栏 795

grep的时候Binary file matches **.log 怎么解决

grep的时候Binary file matches  **.log 怎么解决 软件 分享到: 专业回答 2015-01-14 11:21 操作 grep "xxx" a.log 结果 Binary file a.log matches 原因:grep认为a.log是二进制文件 解决方法:grep -a "xxx" a.l

xiayu98020214的专栏 3万+

rbf神经网络python预测代码_RBF神经网络预测

%用RBF网络来预测股票走势clcclear%归一化数据input=[0 0 0 0 0 0.0277;0.0177 0.0292 0.0184 0.0122 0.0264 0.0492;0.0374 0.0946 0.0393 ...

weixin_39951419的博客 1889

Binary file matches

grep "XXXXX"   xxxx.file 返回Binary file matches 解决办法   grep -a "XXXXX"   xxxx.file

奋斗、 1万+

QST QMC5883L —— 经典磁传感器的生存指南与替代预案

本文聚焦于QST旗下经典三轴磁力计 QMC5883L,解析其技术渊源、核心特性及当前面临的停产风险。结合真实应用场景提供续命方案与选型建议,为依赖该芯片的开发团队争取过渡时间窗口期。文章包含实测数据对比、生命周期管理策略及潜在替代方案拆解。存续价值判断✔️ 现有产品设计无需大幅改动即可延续生命;❌ 新项目采用将面临更高的维护成本;⚠️ 建议在6个月内完成技术路线切换。#磁传感器 #嵌入式开发 #供应链管理 #QST #QMC5883L。

2501_93066786的博客 997

RK3588交叉编译实战:从环境搭建到程序部署

本文详细介绍了在X86主机上为RK3588开发板搭建交叉编译环境的完整流程。从获取ARM工具链、配置sysroot,到实战编译Hello World和Qt应用程序,并提供了部署方法和常见问题解决方案。通过交叉编译,开发者可以在高性能PC上高效开发,并在ARM架构的RK3588上运行程序,大幅提升嵌入式开发效率。

weixin_29191669的博客 274

【异常解决】grep的时候报Binary file ***.log matches解决方法

grep -a 是 grep 命令的一个选项,用于将二进制文件当作文本文件来处理。默认情况下,grep 会跳过二进制文件(如可执行文件、图片、PDF 等),而 -a 选项会强制 grep 将二进制文件视为文本文件,并尝试在其中搜索匹配的内容。

m0_71652485的博客 1773

Python爬虫实战:用BeautifulSoup和Pandas轻松抓取去哪儿网景点数据(附完整代码)

本文详细介绍了如何使用Python的BeautifulSoup和Pandas库构建一个高效的旅游数据爬虫,从去哪儿网抓取景点数据。内容涵盖环境准备、网页结构分析、核心代码实现、反爬策略以及数据清洗与存储,提供完整代码示例,帮助开发者快速掌握数据采集技术。

river的博客 357

linux grep 问题: Binary file (standard input) matches

在 Linux 中使用grep命令搜索文件时,如果遇到二进制文件(如可执行文件、图片、压缩文件等),grep默认会输出一条警告信息,比如 “Binary file (standard input) matches”(或类似的信息)。这是因为grep试图在二进制数据中搜索文本模式,这通常是没有意义的,而且可能会导致不正确的结果或输出乱码。当你使用grep -3命令(-3选项表示在匹配行前后各打印3行)搜索一个文件(比如xx.log),而该文件被识别为二进制文件时,你就会看到这个警告。解决方法。

qq_43071699的博客 3753

在最新版eclipse中配置使用AI AIcoder _AIcoder配置GPUSTACK使用_配置OLLAMA本地AI模型利用_集合---AI场景应用工作笔记

本文介绍了三款实用的编程辅助工具:一款便捷的反编译插件,可直接在插件市场安装使用;GitHub Copilot提供每月2000次代码补全和50条聊天记录的免费额度,支持智能代码提示功能;aicoder支持配置本地模型运行。这些工具都能有效提升开发效率,其中GitHub Copilot的智能补全功能尤为突出。

添柴程序猿的专栏 1238

【WorkBuddy专栏27】WorkBuddy 和 CodeBuddy 到底什么关系——一篇文章终结所有混淆

WorkBuddy 和 CodeBuddy 到底什么关系——一篇文章终结所有混淆

AI人人懂 2645

shell 中使用grep 来判断

在shell中,经常会用到grep 检索某个文件,查询是否有字符匹配, 用来判断流程: 如:查询打印出来的log中,是否有想要的字符串: /usr/app/startup > /usr/config.log grep "NETMASK" /usr/config.log if [ $? -ne 0 ]; then sleep 70 echo "sleep 70s"

6327

【ROS2实体机械臂驱动】封装珞石ROS2驱动库ros2_rokae_driver_lib

这一篇文章将封装为,和之前一篇文章《ROS2 编译、打包、封装三方库(Knet为例)_ros插件编译成静态库-优快云博客》写的封装,区别在于优化了cmake dependencies和include等属性和宏定义,同时对于多库内部依赖的情况做了特定处理,更加方便外部调用。其中珞石的编译参考博主之前的文章rokae xCoreSDK C++测试使用,这里不再做赘述。通过这篇文章对于如何打包机械臂厂家提供的三方库做了进一步说明,方便用于不同机械臂厂家的三方库封装调用。!!

机器人梦想家 Bing Lee 1398

Linux Shell grep讲解大全

任意字符 - 查找以"T"开头,第二个字符任意,第三个字符是"h"的模式。# 基本搜索 - 在file.txt中查找包含"pattern"的行。# 忽略大小写 - 查找包含"pattern"的行(忽略大小写)# 精确匹配整个单词 - 只匹配完整的单词"line"# 反向匹配 - 显示不包含"pattern"的行。# 行尾匹配 - 查找以"file."结尾的行。# 重复字符 - 查找包含0个或多个"a"的行。# 行首匹配 - 查找以"This"开头的行。# 只显示匹配次数 - 统计匹配行的数量。

2402_84347832的博客 1378

复分析 阿尔福斯(Ahlfors) 第三版答案 英文

答案分为十章,有部分习题没有答案,全英文复分析阿尔福斯(Ahlfors) 第三版答案

STM32F407中文手册

STM32f407中文手册 本参考手册面向应用开发人员,提供有关使用 STM32F405xx/07xx、STM32F415xx/17xx、 STM32F42xxx 和 STM32F43xxx 微控制器存储器与外设的完整信息。STM32F405xx/07xx、STM32F415xx/17xx、STM32F42xxx 和 STM32F43xxx 构成一个微 控制器系列,各产品具有不同的存储器大小、封装和外设。有关订购信息以及器件的机械与电气特性,请参见数据手册。有关 ARM Cortex™-M4F 内核的信息,请参见《Cortex™-M4F 技术参考手册》。

shell中的grep命令

shell中的grep命令 1.grep命令 grep命令是一种强大的文本搜索工具,根据用户指定的“模式”对目标文本进行匹配检查,打印匹配到的行 模式:由正则表达式或者字符及基本文本字符所编写的过滤条件 grep命令的基本用法 参数 说明 -c 只输出匹配行的数量 -i 搜索时忽略大小写 -h 查询多文件时不显示文件名 -l 只列出符合匹配的文件名,而不列出具体的匹配行...

nigar_的博客 1711

计算机控制技术及应用

《计算机控制技术及应用》通过总结作者的科研成果和吸收国内外的先进理论、方法和技术,以计算机控制系统的网络化、开放化、智能化和集成化发展趋势为主线索,主要介绍计算机控制系统的基本概念和计算机控制系统的典型形式,计算机控制系统的数学描述与基本分析方法,以及数字PID控制器、最少拍控制系统、达林算法、状态变量设计法等设计方法及其各种改进算法。重点突出计算机控制系统输入输出通道接口的设计方法和典型控制系统的设计案例与实现方法等。

shell grep正则匹配汉字

Shell grep正则匹配中文 测试文本demo_exe.c,内容如下,需要注意保存的编码格式,对输出到终端有影响: 我们中文操作系统ASNI默认是GBK的。 1 #include<stdio.h> 2 #include<stdlib.h> 3 #include <string.h> 4 #include <errn...

dhe8356的博客 4269

efm32 入门.pdf

本PDF共计22页,介绍的是操作驱动API,下载与否自己斟酌。

Shell脚本-grep工具

Shell脚本-grep工具

qq_51626500的博客 1199

Shell常用命令grep用法详解

1. 简介 1.1. 参考 官方手册页面:http://www.gnu.org/software/grep/manual/grep.html 帮助命令: man grep grep --help 1.2. 功能 搜索输入文件中满足匹配指定模式的文本行,并将匹配行输出到标准输出。 1.3. 用法 grep [option…] [patterns] [file…] 2. 选项详解 2.1. 匹配控制选项 ...

规则边缘的博客 1543

SHELL语法中grep的用法正则总结

> () {} + | 使用这些需要转义 比如:grep '\(a\|b\)qw' a.txt。“”号里面遇到$,\等特殊字符会进行相应的变量替换 (相当于grep会对双引号的内容进自动行转义)因为前两个\\ 和后两个\\执行一样的效果,shell会进行转义成两个没有含义的\。然后传递给grep,grep看到了就又转义成两个有含义的\\然后两个有含义的\\会。因为单引号,shell不会转义就表示没有含义的\然后传递给grep,然后grep。识别的有:< > () {} + |?

wtf1213800的博客 915

shell-grep用法

dxm809的博客 216

Shell—grep、sed、awk

Shell学习 Shell 是一个用 C 语言编写的程序,它是用户使用 Linux 的桥梁。Shell 既是一种命令语言,又是一种程序设计语言。 Shell 是指一种应用程序,这个应用程序提供了一个界面,用户通过这个界面访问操作系统内核的服务。 Shell是 Linux系统中自带的语言 【扩展】: 机器语言 汇编语言 高级语言 编译型 ===> 翻译 ===> 计算机 (跨平台性能差,执行速度快) 解释型 ===> 解释器 ===> 翻译 ===> 计算机 (跨平台性能强,

小玖工作坊-博客 676

【shell】grep命令

希望各位不要白piao,点个赞或者刷个评论再走,还有【禁止转载】,抄袭转载必究,谢谢合作。 本篇文章主要讲了grep命令的用法,如果会了可以忽略本文章,省下时间去学习别的知识~ 作用 Linux系统中grep命令是一种强大的文本搜索工具,它能使用正则表达式搜索文本,并把匹 配的行打印出来。grep全称是Global Regular Expression Print,表示全局正则表达式版本,它的使用...

weixin_43071838的博客 1654

shell中用grep查找并且不输出_详解 Shell中的grep命令

用‘grep'搜索文本文件如果您要在几个文本文件中查找一字符串,可以使用‘grep'命令。‘grep'在文本中搜索指定的字符串。举个例子:假设您正在‘/usr/src/linux/Documentation'目录下搜索带字符串‘magic'的文件:$ grep magic /usr/src/linux/Documentation/*sysrq.txt:* How do I enable the m...

weixin_39637386的博客 1862

shell脚本之grep命令

shell之grep命令

techenliu的博客 1761

shell中用grep判断

                                 &...

qq_45595830的博客 1012
上一篇: DB2常用函数总结
下一篇: PostgreSQL 故障处理
伤神v
博客等级 码龄19年 17粉丝 129原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值