首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

Linux命令(32)——grep命令

grep家族包括grep、egrepfgrep。其功能是指定文件查找一个指定格式或者内容字符串,并将匹配字符串所在行打印出来。...如果指定任何文件名称,或给定文件名为“-”,则从标准输入设备读取数据。grep支持正则表达式搜索文本。...grep默认会在每个输出前打印文件名,文件名与匹配行之间会有一个冒号隔开,-Z选项告诉grep不要使用冒号了,使用一个NUL字符; -v,--invert-match:反向选择,显示包含匹配文本所有行...grep 'test' d* (4)打印aa,bb,cc文件匹配test行,并显式行号。...#方法一:使用符号\| grep "pattern1\|pattern2" filename #方法二:使用-E选项,用扩展正则表达式解释匹配模式 grep -E "pattern1|pattern2

4.5K20

Shell 编程(五):文本三剑客之 sed

能够根据命令来处理数据数据,这些命令要么从命令行输入,要么存储一个命令文本文件。...根据所提供编辑器命令匹配数据。 按照命令修改流数据。 将新数据输出到 STDOUT。...16行结束 /pattern1/command 匹配到pattern1行【常用】 /pattern1/,/pattern2/command 匹配到pattern1行开始,到匹配到pattern2行结束...1,+5d 删除 1 行到 6 行内容 /pattern1/d 删除每行匹配到 pattern1 行内容 /pattern1/,/pattern2/d 删除匹配到 pattern1 行直到匹配到...例子 删除配置文件 /etc/nginx 所有注释行空行 > sed -i '/[:blank:]*#/d;/^$/d' nginx 配置文件 /etc/nginx 中所有不以 # 开头行前面添加

79610
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    sed

    加上-n参数即可 图片 选项 -e 如果想输出第二行第五行内容,可以多次指定-e参数 图片 选项 -f 如果脚本(就是引号)比较多,可以把这些脚本写到一个文件,每行一个 图片...把2p(打印第二行)4p(打印第四行)写到script文件,使用sed -f指定脚本名 选项 -i.bak sed -i.bak '/pattern/' FILENAME # 修改文件之前,...先备份,修改,备份文件名为 FILENAME.bak script 地址 写地址 如果省略地址,处理文件所有行 单地址 # # 行号,指定行 $ # 最后一行 /pattern/ # 能够被正则表达式匹配到每一行...地址范围 #,# # 行号,第几行到第几行 #,+# # 比如10,+20,就是10到10+20行 /pattern1/,/pattern2/ # 从满足pattern1模式开始,到满足pattern2...r /PATH/FILENAME # 从指定文件读取内容到模式空间中匹配到行后面 命令 d 图片 删除模式空间第2行,打印其他行 命令 !

    47310

    一篇文章学会shell工具篇之sed

    sed叫做流编辑器,shell脚本Makefile作为过滤器使用非常普遍,也就是把前一个程序输出引入sed输入,经过一系列编辑命令转换成为另一种格式输出。...行,将该行第一个匹配pattern1字符串替换为pattern2 /pattern/s/pattern1/pattern2/g:查找符合pattern行,将该行所有匹配pattern1...-e:允许对输入数据应用多条sed命令编辑。 -i:将修改结果直接写入到读取数据文件不是由屏幕输出。(1.修改了文件; 2.由cat可查看) -f: 指定sed脚本文件名。... 例1:给每行后面添加一行空行 例2:用sed模拟倒序(tac)打印过程 例3.追加匹配行到文件末尾 例4:将一列内容变为一行 例5:求出1-100求和 例6:打印输出奇数行偶数行...不同是,sed使用正则表达式是括斜杠线"/"之间模式。 如果要把正则表达式分隔符"/"改为另一个字符,比如o,只要在这个字符前加一个反斜线,字符后跟上正则表达式,再跟上这个字符即可。

    97070

    Linux 流编辑器 sed 详解

    y 逐字符替换 p 打印文本行 = 打印行号 w 向文件写入数据 r 从文件读取数据 二、使用 sed 命令进行文本替换 sed 使用 s 命令来进行文本替换操作,基本格式如下: sed 's...bin 替换为 BIN 与数字寻址一样,也可以使用文本过滤区间来过滤行: sed '/pattern1/,/pattern2/ edit_command' file 这行命令会在文件 file 先寻找匹配...pattern1 行,然后从该行开始,执行编辑命令,直到找到匹配 pattern2 行。...但是需要注意是,使用文本区间过滤文本时,只要匹配到了开始模式(pattern1),编辑命令就会开始执行,直到匹配到结束模式(pattern2),这会导致一种情况:一个文本,先匹配到了一对 pattern1...、pattern2,对该文本区间中文本执行了编辑命令;然后, pattern2 之后又匹配到了 pattern1,这时就会再次开始执行编辑命令,因此,使用文本区间过滤时要格外小心。

    1.5K10

    测试开发进阶(四十一)

    实例 /dev/null相当于linux回收站 $ grep "$USER" passwd > /dev/null && echo "$USER是存在"|| echo "$USER是不存在"...-f加载存放动作文件 -r支持拓展正则 -i直接修改文件 匹配模式 pattern 5 只处理第五行 5,10只处理第五行到第十行 /pattern1/只处理能匹配到pattern1行 /pattern1.../,/pattern2/只处理从匹配到pattern1行到匹配pattern2行 command命令 查询 p 新增 a匹配行后面新增 i匹配行前新增 r外部文件读入,行后新增 w匹配行写入外部文件...删除 d 修改 s/old/new,只修改匹配行第一个old s/old/new/g修改匹配行中所有的old s/old/new/ig忽略大小写 ---- p相当于print 匹配打印两次 原始行...+匹配行 $ sed "p" passwd 只打印匹配行 $ sed -n "p" passwd 匹配 mail那行 $ sed "/mail/ p" passwd -n ?

    49910

    Linux基础(强大到流泪findgrep)

    相应命令形式为’command’ { } ;,注意{ }之间空格 find ./ -size 0 -exec rm {} ; 删除文件大小为零文件 (还可以以这样做:rm -i find...find / -name “CON.FILE” -depth –print 它将首先匹配所有的文件然后再进入子目录查找 -mount:查找文件跨越文件系统mount点。 find ....0则表示找到了匹配行。 -l,–files-with-matches 打印匹配模板文件清单。 -L,–files-without-match 打印匹配模板文件清单。...-n,–line-number 匹配行前面打印行号。 -s,–silent 不显示关于不存在或者无法读取文件错误信息。 -v,–revert-match 反检索,只显示匹配行。...pattern1 | pattern2 files :显示匹配 pattern1pattern2 行, grep pattern1 files | grep pattern2 :显示既匹配 pattern1

    93620

    Python3多线程小说爬虫可提供查询功能

    版本 一般cmd里面pip install ×××,作者是用pycharm解释器,里面可用搜索库名进行下载,写python爬虫一般推荐这个 chromedriver版本对应关系可以自行百度,下载完安装到自己选定路径...', re.S) contents1 = re.findall(pattern1, driver.page_source) pattern2 = re.compile(r'<td class="...,输入对应<em>的</em>编号:')) want_url = str(URLlist[step - 1]) ②爬取所需要下载<em>的</em>小说各个章节<em>的</em>URL,将其依次存入队列 <em>在</em>第一步<em>中</em>获得对应网页<em>的</em>URL进行队列存储...base_url + part_url) q.put(title + '+' + base_url + part_url) driver.close() driver.quit() ③首先会<em>打印</em>出章节名字<em>和</em>对应<em>的</em>...() # 避免多个线程保卫同一块<em>数据</em><em>的</em>时候,产生错误,所以加锁 好了,具体全部代码如下(只需更改driverchrome安装<em>的</em>路径<em>和</em>存储小说<em>的</em><em>文件</em>夹路径就可以运行了): import queue import

    44720

    文本处理三驾马车之 sed

    sed command file command 部分,针对每行要进行处理 file,要处理文件 Actions d:删除该行 p:打印该行 i:在行前面插入新行 a:在行后面插入新行 r:读取指定文件内容...sed -n '/pattern1/,/pattern2/p' file # 显示patter1与pattern2之间行 sed '10d' file # 删除第10行 sed '10,20d...# 删除行首行尾空白:空格,制表符 sed 's/AA/BB/' file # 将文件AA替换成BB,只替换一行第一次出现AA,替换后结果输出到屏幕 sed 's/AA/BB/g...' file # 将文件所有AA都替换成BB,替换后结果输出到屏幕 sed -i 's/AA/BB/g' file # 将文件所有AA都替换成BB,直接更改文件内容 sed '/CC/s/AA...hello,通常用来为文件增加标题 sed '1a\hello' file # 第1行后面插入一行,内容为hello sed '1r file2' file1 # 第1行后面读入file2

    10210

    送书 | 教你爬取电影天堂数据

    我是啃书君 我朋友说:俗话说,闲来没事干,不如斗地主,哎,我们斗地主,就是玩~。那不斗地主,我们干点啥好捏~,不如看电影?!...我说:哎呀,被你发现了,没事,那我们去电影天堂爬电影数据,到时候想看哪部就下载下来,慢慢看! 爬取分析 爬取之前,分析爬取逻辑理清思路。...接下来我们创建了一个名为pattern2正则表达式对象来获取a链接里面的href,通过使用列表推导式,我们将每个电影URL链接存放在列表,然后将每个列表元素传递到get_data()方法。...,电影图片等数据只有一个,电影下载链接可能有多个,例如电视剧下载链接就有多个,我们如果只用一个正则表达式对象来获取电视剧数据信息的话,只能获取到一个下载链接,所以我们首先通过正则表达式来获取电影图片...获取完数据信息后,所有的数据放在字典,并循环打印出来,运行结果如下: 由于本人觉得这种打印出来数据算是比较好看了,所以没做进一步数据保存,大家可以根据需要自行将这些数据存储到其他地方。

    1.3K30

    常用正则表达式最强汇总(含Python代码举例讲解+爬虫实战)

    讲解如何实际应用正则表达式之前,先教大家学习并掌握正则表达式基本语法(匹配规则)。 正则表达式匹配过程如下: (1)将定义好正则表达式字符串进行比较。...举例: import re pattern1 = re.compile(r'music') #例1“i love the music”里music替换成python print(re.sub(pattern1..., 'python', 'i love the music')) pattern2 = re.compile(r'(\d+)') #例2“数字123 9”被python替换。...] 分析网页源码: [c03f30dfba60fd3d4f564db82478a7be.png] 可以看到章节标题在h3标签,其class为j_chapterName;正文内容p标签,清楚这些之后...最后 本文汇总正则表达式常用基本语法,并结合Python进行举例演示 最后实战讲解正则表达式爬虫应用。

    2.5K30

    3分钟短文 | grep 入门用法,匹配多字符串,多正则模式

    引言 grep 是一种功能强大命令行工具,可以一个或多个输入文件搜索与正则表达式匹配行,并将每条匹配行写入标准输出。 本文中,我们将向你展示如何使用GNU grep搜索多个字符串或模式。...使用grep基本正则表达式搜索多个模式语法如下: grep 'pattern1\|pattern2' file... 始终将正则表达式括单引号,以避免shell解释扩展元字符。...使用扩展正则表达式时,请不要转义|运算符: grep -E 'pattern1|pattern2' file... Grep多个字符串 文字字符串是最基本模式。...在下面的例子 Nginx 日志错误文件内,查找包含单词 fatal,error以及critical所有行: grep 'fatal\|error\|critical' /var/log/nginx...因此,如果要搜索“error”,grep还将打印用较多单词(例如“errors”,“errorless”,“antiterrorists”)。

    1.3K30
    领券