grep命令最常用的功能总结

GREP命令常见用法 常用参数: -a #不要忽略二进制数据 -A #除了显示符合范本样式的那一行之外,并显示该行之后的内容 -b #在显示符合范本样式的那一行之外,并显示该行之前的内容 -B #除了显示符合样式的那一行之外,并显示该行之前的内容 -c #计算符合范本样式的列数 -C #除了显示符合范本样式的那一列之外,并显示该列之前后的内容 -d #当指定要查找的是目录而非文件时,必须使用这项参数,否则grep命令将回报信息并停止动作 -e #指定字符串作为查找文件内容的范本样式 -E #将范本样式为延伸的普 阅读详情

1. grep最简单的使用方法,匹配一个词:grep word filename

2. 可以从多个文件中匹配:grep word filename1 filenam2 filename3

3. 可以使用正则表达式匹配:grep -E pattern f1 f2 f3...

4. 可以使用-o只打印匹配的字符,如下所示:

lichao@ubuntu:command$ echo this is a line. | grep -E -o "[a-z]*\."
line.
5. 打印除匹配行之外的其他行,使用-v

lichao@ubuntu:command$ echo -e "1\n2\n3\n4" | grep -v -E "[1-2]"
3
4

6. 统计匹配字符串的行数,使用-c

lichao@ubuntu:command$ echo -e "1111\n2222" | grep -E "[1-2]" -c
2

7. 如果我们统计字符串模式匹配的次数,可以结合-o和-c,如下:

lichao@ubuntu:command$ echo -e "1111\n2222" | grep -o -E "[1-2]"  | wc -l
8

8. 如果需要显示行号,可以打开-n,如下:

lichao@ubuntu:command$ echo -e "1111\n2222\n33333\n44444" | grep -n -E "3"
3:33333

9. -b选项可以打印出匹配的字符串想对于其所在的行起始位置的偏移量(从0开始),通常配合-o使用,如下:

lichao@ubuntu:command$ echo "0123456789" | grep -b -o 4
4:4

10. 当字符串在多个文件中匹配时,-l选项将只打印文件名


11. -L与-l相对,只打印不匹配的文件名

lichao@ubuntu:command$ cat test1.txt
linux
is
fun
lichao@ubuntu:command$ cat test2.txt
a 
very
popular 
os,
linux
lichao@ubuntu:command$ cat test3.txt
what
the
fxxk
lichao@ubuntu:command$ grep -l linux test1.txt test2.txt test3.txt
test1.txt
test2.txt
lichao@ubuntu:command$ grep -L linux test1.txt test2.txt test3.txt
test3.txt

12. 打开递归搜索功能

lichao@ubuntu:command$ grep -n -R linux . 
./test2.txt:5:linux
./test1.txt:1:linux

13. 忽略大小写:-i

lichao@ubuntu:command$ echo "HELLO WORLD" | grep -i "hello"
HELLO WORLD

14. 匹配多个字符串模式

lichao@ubuntu:command$ echo "This is a line." | grep -e "This" -e "is" -e "line" -o
This
is
line

15. 用单独的文件提供匹配样式,每个匹配的样式作为一行,如下例所示:

lichao@ubuntu:command$ cat pattern.txt
1$
2
3
lichao@ubuntu:command$ cat num.txt 
1
2
3
4
5
6
7
8
9
10
lichao@ubuntu:command$ grep -f pattern.txt num.txt 
1
2
3

16. 打印匹配行上下文信息,使用 -A n打印匹配行及其后n行信息;使用-B n打印匹配行及其前n行信息;使用 -C n,打印匹配行及其前后n行信息;如果有多重匹配,将使用--隔离。示例如下:

lichao@ubuntu:command$ seq 1 10 | grep 5 -A 3
5
6
7
8
lichao@ubuntu:command$ seq 1 10 | grep 5 -B 3
2
3
4
5
lichao@ubuntu:command$ seq 1 10 | grep 5 -C 3
2
3
4
5
6
7
8
lichao@ubuntu:command$ echo -e "a\nb\nc\nd\na\nb\nc\nd\n" | grep a -A 2
a
b
c
--
a
b
c

17. 使用-q进入静默模式,该模式下,grep命令运行目的仅仅是执行一个条件测试,通常在脚本中使用。通过检查其返回值进行下一步操作。示例如下:

lichao@ubuntu:command$ cat tmp.txt
hello
world
lichao@ubuntu:command$ cat tmp.csh
#!/bin/bash
if [ $# -ne 2 ]; then
	echo "Usage: $0 match_pattern file_name"
	exit
fi
match=$1
file=$2
grep -q $match $file
if [ $? -ne 0 ]; then
	echo "$match not exist in $file"
else
	echo "$match exist in $file"
fi
lichao@ubuntu:command$ ./tmp.csh hello tmp.txt
hello exist in tmp.txt

18. -Z选项在输出匹配文件名时将以/0结尾配合xargs -0可以发挥很多作用,例如删除匹配某个模式的文件如下:

lichao@ubuntu:command$ ls -llrt
total 28
-rw-rw-r-- 1 lichao lichao  13 Nov  1 20:38 test1.txt
-rw-rw-r-- 1 lichao lichao  27 Nov  1 20:39 test2.txt
-rw-rw-r-- 1 lichao lichao  14 Nov  1 20:39 test3.txt
-rw-rw-r-- 1 lichao lichao  21 Nov  1 20:45 num.txt
-rw-rw-r-- 1 lichao lichao   7 Nov  1 20:45 pattern.txt
-rw-rw-r-- 1 lichao lichao  12 Nov  1 21:25 tmp.txt
-rwxr-xr-x 1 lichao lichao 217 Nov  1 21:27 tmp.csh
lichao@ubuntu:command$ cat test1.txt
linux
is
fun
lichao@ubuntu:command$ cat test2.txt
a 
very
popular 
os,
linux
lichao@ubuntu:command$ grep "linux" * -lZ | xargs -0 rm
lichao@ubuntu:command$ ls
num.txt  pattern.txt  test3.txt  tmp.csh  tmp.txt
以上命令将包含linux字符串的test1.txt和test2.txt删除。


19. 排除/包括文件或者目录:1)--include *{.c,.cpp} 只在目录中搜索.c和.cpp文件;2)--exclude "README" 排除所有README文件 3) --include-dir 仅在某些目录中搜索 4) --exclude-dir 排除某些目录 5) --exclude-from FILE 从文件FILE中读取需要排除的文件列表

lichao@ubuntu:test$ ls
dir1  dir2  exclude.config  test1.txt  test2.doc  test3.word
lichao@ubuntu:test$ cat test1.txt 
linux 
is 
fun
lichao@ubuntu:test$ cat test2.doc 
wonderful 
os,
linux
lichao@ubuntu:test$ cat test3.word 
wonderful 
os,
linux
lichao@ubuntu:test$ ls dir1/
test1.txt  test2.doc  test3.word
lichao@ubuntu:test$ ls dir2/
test1.txt  test2.doc  test3.word
lichao@ubuntu:test$ cat exclude.config 
*.txt
lichao@ubuntu:test$ grep "linux" -R -n . 
./test2.doc:3:linux
./test3.word:3:linux
./test1.txt:1:linux 
./dir2/test2.doc:3:linux
./dir2/test3.word:3:linux
./dir2/test1.txt:1:linux 
./dir1/test2.doc:3:linux
./dir1/test3.word:3:linux
./dir1/test1.txt:1:linux 
lichao@ubuntu:test$ grep "linux" -R -n . --include *.txt --include *.doc
./test2.doc:3:linux
./test1.txt:1:linux 
./dir2/test2.doc:3:linux
./dir2/test1.txt:1:linux 
./dir1/test2.doc:3:linux
./dir1/test1.txt:1:linux 
lichao@ubuntu:test$ grep "linux" -R -n . --exclude *.txt --eclude *.doc
grep: unrecognized option '--eclude'
Usage: grep [OPTION]... PATTERN [FILE]...
Try 'grep --help' for more information.
lichao@ubuntu:test$ grep "linux" -R -n . --exclude *.txt --exclude *.doc
./test3.word:3:linux
./dir2/test3.word:3:linux
./dir1/test3.word:3:linux
lichao@ubuntu:test$ grep "linux" -R -n . --exclude-dir dir1
./test2.doc:3:linux
./test3.word:3:linux
./test1.txt:1:linux 
./dir2/test2.doc:3:linux
./dir2/test3.word:3:linux
./dir2/test1.txt:1:linux 
lichao@ubuntu:test$ grep "linux" -R -n . --exclude-dir dir1 --exclude-dir dir2
./test2.doc:3:linux
./test3.word:3:linux
./test1.txt:1:linux 
lichao@ubuntu:test$ grep "linux" -R -n . --exclude-from exclude.config 
./test2.doc:3:linux
./test3.word:3:linux
./dir2/test2.doc:3:linux
./dir2/test3.word:3:linux
./dir1/test2.doc:3:linux
./dir1/test3.word:3:linux

已上即为grep常用的选项。


注意:转载请注明出处。





基于Isaac Gym与PPO算法的机械臂抓取任务仿真与强化学习实战(附完整代码与训练策略) 本文详细介绍了基于Isaac Gym与PPO算法的机械臂抓取任务仿真与强化学习实战。通过环境搭建、PPO算法实现、奖励函数设计等核心环节的优化,结合完整代码与训练策略,显著提升机械臂抓取效率与成功率。特别适合开发者快速掌握强化学习在机器人控制领域的应用。 阅读详情

相关推荐

从Delta Delay到Timing Window:详解数字芯片后端时序差异的那些坑

本文深入剖析了数字芯片后端设计中,模块级与系统级时序分析结果不一致的核心原因。重点解释了Delta Delay如何导致模块级分析的乐观假设,以及Timing Window(时序窗口)差异如何通过影响串扰噪声计算,在顶层集成时引发新的时序违例,尤其是保持时间问题。文章为工程师提供了从约束建模到签核策略的系统性应对方案。

beer8的博客 499

grep的语法和用法

grep命令的格式: grep   [options]   PATTERN  [FILE] 其中: 1,pattern是用正则表达式书写的模式。 2,FILE是要查找的文件,可以是用空格间隔的多个文件,省略FILE时表示在标准输入中查找 常用参数: -E :采用规则表示式去解释样式。 -c:只显示匹配行的次数。 -i:搜索时不区分大小写。 -n:输出匹配行的行号。 -v:输出不

tianmo2010的专栏 8904

SAP-MM-采购过账接口(与WMS集成)-代码

1、判断传入值非空检验; 2、判断过账日期是否允许在当前期间; 3、判断是否为集采订单业务,是否审批完成; 4、判断是否发布标准成本发布(此业务场景与价格控制3+S有关) 5、保存日志表; 6、判断业务公司订单审批状态; 7、创建STO交货单、集采公司订单过账、STO公司间创建交货单、交货单过账(两步法)、过账失败回滚(冲销交货、删除交货单、冲销集采入库)

qq_32198063的博客 420

lsof |grep delete卡住_Linux:命令file 和 grep

这篇文章将从三个方面聊一聊Linux中的file和grep命令介绍grep命令(egrep,fgrep),示例介绍find命令,示例grep与find命令使用对比,示例介绍grep命令grep的前言grep据说是linux数据处理三剑客之一(另外两个分别是sed,awk)也可以感受到grep命令在Linux的数据处理方面的强大之处。grep is a command line utility in...

weixin_40003478的博客 1032

DAMMFND: Domain-Aware Multimodal Multi-view Fake News Detection

虚假新闻的泛滥不仅严重阻碍了互联网社交媒体的健康发展,还在政治、经济和社会层面造成了实际危害,凸显了自动化虚假新闻检测的重要性(Zhou 等,2015;Cui 等,2019;Zhu 等,2022a;Li 等,2024c,b,a)。现有的虚假新闻检测方法通常聚焦于特定领域的新闻,例如健康或政治领域。然而,在现实世界中,社交媒体上的新闻往往跨越多个领域,这就要求现有的虚假新闻检测方法必须考虑多域泛化(Nan 等,2021;Qi 等,2019;Zhu 等,2022b)。

qq_52053775的博客 337

使用 Simulink Real-Time 搭建一个完整的实时信号采集与滤波系统模型

本文详细介绍了基于Simulink Real-Time构建实时信号采集与滤波系统的完整流程。主要内容包括:系统配置(模型创建与参数设置)、信号采集模块搭建(模拟信号源或真实硬件连接)、实时滤波器设计(浮点/定点)、输出可视化(Scope/ToWorkspace等)、模型编译与下载到目标机、外部模式在线调试及数据保存方法。系统可实现微秒级实时信号处理,适用于工业控制、航空航天等对时间确定性要求高的场景。文章还提供了优化建议(多速率建模、优先级调度等)和应用场景说明,帮助读者快速掌握实时系统开发的核心技能。

amy_mhd的博客 304

LINUX的GREP命令介绍和使用

grep 命令是“全局正则表达式打印”的缩写,是一种广泛使用的 Linux 工具,它使用户能够根据特定模式搜索文本或输出。该脚本将打印“发现错误!此命令将仅打印 file.txt 中的单词“hello”,忽略该行的其余部分。此命令将打印 file.txt 中包含“hello”的所有行,无论大小写。此命令将打印 file.txt 中包含“hello”或“world”的行。此命令将打印 file.txt 中不包含单词“hello”的所有行。此命令将打印 file.txt 中以“错误:”或“警告:”开头的行。

linuxunion的博客 1618

如何使用 SAP ABAP Development Tool 连接 SAP BTP 上的免费 ABAP 编程环境

在云端环境编写 ABAP 代码会遇到一些限制,比如你无法在云端 ABAP 编程环境进行发生在传统 SAPGUI 里的 Dynpro 和 Screen 编程。部分在 SAPGUI 里使用的 List 处理相关的关键字比如 WRITE,还有 CALL TRANSACTION 等代码,也无法在云端使用。 当然如果大家觉得上面提到的这些限制不会影响自己的 ABAP 学习,就可以继续本文的阅读,使用 ABAP Development Tool 登录云端的 ABAP 编程环境。

2007 年 ~ 2025 年,深耕 SAP 技术 18 年 1517

Linux grep 命令以及ps命令

Linux grep 命令用于查找文件里符合条件的字符串。 grep 指令用于查找内容包含指定的范本样式的文件,如果发现某文件的内容符合所指定的范本样式,预设 grep 指令会把含有范本样式的那一列显示出来。若不指定任何文件名称,或是所给予的文件名为 -,则 grep 指令会从标准输入设备读取数据。 语法 grep [-abcEFGhHilLnqrsvVwxy][-A<显示列数>][-...

码纳须臾 1363

YOLOv8-Pose NCNN Android部署优化实践

本文探讨了在Android设备上高效部署YOLOv8-Pose姿态检测模型的优化实践。通过修改Pose头部导出逻辑,分离后处理到C++端实现,并替换SiLU激活函数为ReLU,显著提升了计算效率。具体步骤包括模型结构优化、ONNX导出、NCNN转换与算子融合,最终在Android端实现了30FPS的稳定推理性能。项目提供了完整的优化思路和实现方案,对移动端AI应用开发具有参考价值。

FJN110的博客 323

Python3+PCAN-USB基于PCAN-Basic二次开发实现上位机功能

一、环境搭建 1.概述 本文主要是通过Python3与CAN总线工具PCAN-USB基于官方PCAN-Basic库实现CAN总线消息读写功能。 2.PCANBasic.py和PCANBasic.dll下载地址 https://www.peak-system.com/fileadmin/media/files/pcan-basic.zip 3.Python安装 下载地址:https://www.p...

测试领域技术分享 5185

Linux最常用的20条命令

玩过Linux的人都会知道,Linux中的命令的确是非常多,但是玩过Linux的人也从来不会因为Linux的命令如此之多而烦恼,因为我们只需要掌握我们最常用的命令就可以了。当然你也可以在使用时去找一下man,他会帮你解决不少的问题。然而每个人玩Linux的目的都不同,所以他们常用的命令也就差异非常大,而我主要是用Linux进行C/C++和shell程序编写的,所以常用到的命令可以就会跟一个管理Li

chajinglong的专栏 2万+

IEM模型,地表粗糙度模拟

利用微波反演土壤水分时候,利用IEM模型可以实现对随机地表的模拟

(转)最常用的Linux命令

原文链接:[url]http://blog.youkuaiyun.com/ljianhui/article/details/11100625[/url] 玩过Linux的人都会知道,Linux中的命令的确是非常多,但是玩过Linux的人也从来不会因为Linux的命令如此之多而烦恼,因为我们只需要掌握我们最常用的命令就可以了。当然你也可以在使用时去找一下man,他会帮你解决不少的问题。然而每个人玩Linu...

雕刻时间的专栏 203

VB摄像头监控

该VB模块可对摄像头捕获的画面进行录像等,可在创建的窗口进行控制

LinePhone3.2.7(android端最新版本) sip客户端

SIP客户端For android:LinePhone3.2.7(最新版本),官网地址:http://www.linphone.org/

linux最常用的20条命令

Linux之最常用的20条命令 玩过Linux的人都会知道,Linux中的命令的确是非常多,但是我们只需要掌握我们最常用的命令就可以了。因为不想在使用是总是东查西找,所以在此总结一下,方便一下以后的查看。不多说,下面就说说我最常用的Linux命令...

蓝带的博客 552

WINCC7.3破解文件

WINCC7.3硬件够破解文件,有需要的下载!WINCC7.3硬件够破解文件,有需要的下载!

Linux常用命令

玩过Linux的人都会知道,Linux中的命令的确是非常多,但是玩过Linux的人也从来不会因为Linux的命令如此之多而烦恼,因为我们只需要掌握我们最常用的命令就可以了。当然你也可以在使用时去找一下man,他会帮你解决不少的问题。然而每个人玩Linux的目的都不同,所以他们常用的命令也就差异非常大,而我主要是用Linux进行C/C++和shell程序编写的,所以常用到的命令可以就会跟一个管理L...

Lzc的博客 202

linux最常用的20个命令(一)

玩过Linux的人都会知道,Linux中的命令的确是非常多,但是玩过Linux的人也从来不会因为Linux的命令如此之多而烦恼,因为我们只需要掌握我们最常用的命令就可以了。当然你也可以在使用时去找一下man,他会帮你解决不少的问题。然而每个人玩Linux的目的都不同,所以他们常用的命令也就差异非常大,而我主要是用Linux进行C/C++和shell程序编写的,所以常用到的命令可以就会跟一个管理Linux系统的人有所不同。因为不想在使用是总是东查西找,所以在此总结一下,方便一下以后的查看。不多说,下面就说说我

qq_2580123的博客 381

linux中find相对路径_新手入门linux之最常用的20条命令

玩过Linux的人都会知道,Linux中的命令的确是非常多,但是玩过Linux的人也从来不会因为Linux的命令如此之多而烦恼,因为我们只需要掌握我们最常用的命令就可以了。当然你也可以在使用时去找一下man,他会帮你解决不少的问题。然而每个人玩Linux的目的都不同,所以他们常用的命令也就差异非常大,而我主要是用Linux进行C/C++和shell程序编写的,所以常用到的命令可以就会跟一个管理Li...

weixin_33411550的博客 205

常用的linux命令20条,Linux常用的20条命令

1、cd命令这是一个非常基本,也是大家经常需要使用的命令,它用于切换当前目录,它的参数是要切换到的目录的路径,可以是绝对路径,也可以是相对路径。如:[plain] view plain copy print?cd /root/Docements # 切换到目录/root/Docementscd ./path # 切换到当前目录下的path目录中,“.”表示当前目录cd ../pa...

weixin_42500642的博客 666

linux的20个常用命令

接触过linux的人都知道,linux是通过大量的命令来进行操作的,那接下来笔者就总结了20个最常用的命令给大家熟悉一下 1、cd命令 这是一个非常基本,也是大家经常需要使用的命令,它用于切换当前目录,它的参数是要切换到的目录的路径,可以是绝对路径,也可以是相对路径。如: 2、ls命令 这是一个非常有用的查看文件与目录的命令,list之意,它的参数非常多,下面就列出一些我常用的参数吧,如下: ...

weixin_42409884的博客 1289

linux 常用的20条命令,Linux常用的20条命令

1、cd命令这是一个非常基本,也是大家经常需要使用的命令,它用于切换当前目录,它的参数是要切换到的目录的路径,可以是绝对路径,也可以是相对路径。如:[plain] view plain copy print?cd /root/Docements # 切换到目录/root/Docementscd ./path # 切换到当前目录下的path目录中,“.”表示当前目录cd ../pa...

weixin_36128239的博客 152

初窥Linux 之 我最常用的20条命令

玩过Linux的人都会知道,Linux中的命令的确是非常多,但是玩过Linux的人也从来不会因为Linux的命令如此之多而烦恼,因为我们只需要掌握我们最常用的命令就可以了。当然你也可以在使用时去找一下man,他会帮你解决不少的问题。然而每个人玩Linux的目的都不同,所以他们常用的命令也就差异非常大,而我主要是用Linux进行C/C++和shell程序编写的,所以常用到的命令可以就会跟一个管理Lin

224

linux常用的20个命令

玩过Linux的人都会知道,Linux中的命令的确是非常多,但是玩过Linux的人也从来不会因为Linux的命令如此之多而烦恼,因为我们只需要掌握我们最常用的命令就可以了。当然你也可以在使用时去找一下man,他会帮你解决不少的问题。然而每个人玩Linux的目的都不同,所以他们常用的命令也就差异非常大,而我主要是用Linux进行C/C++和shell程序编写的,所以常用到的命令可以就会跟一个管理Lin

zhaxiaodong的博客 486

linux常用命令

 玩过Linux的人都会知道,Linux中的命令的确是非常多,但是玩过Linux的人也从来不会因为Linux的命令如此之多而烦恼,因为我们只需要掌握我们最常用的命令就可以了。当然你也可以在使用时去找一下man,他会帮你解决不少的问题。然而每个人玩Linux的目的都不同,所以他们常用的命令也就差异非常大,而我主要是用Linux进行C/C++和shell程序编写的,所以常用到的命令可以就会跟一个

u014305451的博客 410
上一篇: 面试笔试-脚本-1:使用shell脚本输出登录次数最多的用户
下一篇: 用Shell脚本过滤Hadoop中不能访问的节点
下木
博客等级 码龄16年 88粉丝 132原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值