首页 > 其他分享 >grep、awk、sed

grep、awk、sed

时间:2023-09-12 16:46:12浏览次数:23  
标签:grep 动作 -- NUM 模式 sed awk 匹配

grep<grep [选项] 模式 [文件...]>

-i, --ignore-case:忽略大小写,使搜索不区分大小写。

-v, --invert-match:反转匹配,仅显示不包含指定模式的行。

-r, --recursive:递归搜索,用于在指定目录及其子目录中搜索文件。

-l, --files-with-matches:仅显示包含匹配模式的文件名,而不是匹配的行内容。

-L, --files-without-match:仅显示不包含匹配模式的文件名。

-n, --line-number:显示匹配行的行号。

-c, --count:仅显示匹配行的数量,而不是行内容。

-w, --word-regexp:仅匹配整个单词,而不是部分匹配。

-o, --only-matching:仅显示匹配的文本,而不是整行。

-A NUM, --after-context=NUM:显示匹配行及其后的 NUM 行内容。

-B NUM, --before-context=NUM:显示匹配行及其前的 NUM 行内容。

-C NUM, -NUM, --context=NUM:显示匹配行及其前后的 NUM 行内容。

-e PATTERN, --regexp=PATTERN:指定搜索的模式,可以多次使用以指定多个模式。

-f FILE, --file=FILE:从文件中读取搜索模式,每行一个模式。

--exclude=PATTERN:排除匹配指定模式的文件或目录。

--exclude-from=FILE:从文件中读取排除模式。

--include=PATTERN:仅包括匹配指定模式的文件。

-q, --quiet, --silent:静默模式,不输出匹配的内容,仅返回匹配状态。

--color=auto:在匹配文本上着色,可使用选项值 "always" 或 "never" 来控制是否总是着色。

-P, --perl-regexp:使用Perl兼容正则表达式语法进行匹配。

-E, --extended-regexp:使用扩展正则表达式语法进行匹配(默认情况下)。

awk<awk [选项] '模式 { 动作 }' 文件>

-F, --field-separator=分隔符:指定字段分隔符,默认为单个空格或制表符。通过这个选项,您可以定义字段之间的分隔符。

-v var=value:定义一个变量并初始化它,可以在 awk 脚本中使用。

-f 文件:从文件中读取 awk 脚本,而不是在命令行中直接提供脚本。

-W, --word-regexp:仅匹配整个单词,而不是部分匹配。

-v var:打印 awk 内置变量的值,例如 NR(记录号)、NF(字段数)等。

-F'[regex]':使用正则表达式作为字段分隔符。

awk 脚本:

awk 脚本由模式和动作组成,模式指定了何时执行动作,动作则指定了要执行的操作。以下是一些常见的模式和动作示例:

模式:模式定义何时执行动作。

/pattern/:当记录(行)包含指定的模式时执行动作。
condition:当条件满足时执行动作。条件可以是数值比较、正则表达式匹配等。
动作:动作是在模式匹配时执行的命令。

{ print $1 }:打印第一个字段。
{ sum += $2 }:累加第二个字段的值到 sum 变量。
{ if ($3 > 10) print $0 }:如果第三个字段大于 10,则打印整个记录。
内置变量:

awk 提供了一些内置变量,用于访问有关输入数据的信息:

NR:记录号,表示当前记录的行号。
NF:字段数,表示当前记录的字段数量。
$0:当前记录的完整文本。
$1、$2、...、$NF:当前记录的字段值。

sed<sed [选项] '编辑命令' 文件>

-n, --quiet, --silent:静默模式,只有经过编辑命令处理的行才会被打印到标准输出。如果没有 -n 选项,所有行都会被打印。

-e SCRIPT, --expression=SCRIPT:使用多个编辑命令(脚本),可以在一个命令行中多次使用 -e 选项。

-f SCRIPT-FILE, --file=SCRIPT-FILE:从文件中读取 sed 脚本,而不是在命令行中提供脚本。

-i[SUFFIX], --in-place[=SUFFIX]:在文件中直接编辑,替换原始文件的内容。可选的 SUFFIX 用于备份原始文件。

-r, --regexp-extended:使用扩展正则表达式语法进行匹配(默认情况下使用基本正则表达式语法)。

-s, --separate:处理多个文件时,将它们视为独立的,即重新开始编辑命令。

-u, --unbuffered:禁用输出缓冲,尽快将内容输出。

-n N, --quiet N, --silent N:仅打印从第 N 行开始的输出。

-V, --version:显示 sed 的版本信息。

编辑命令:

sed 的编辑命令由一个地址和一个动作组成。地址指定了应用动作的行(或范围),动作则定义了对匹配的行执行的操作。以下是一些常见的编辑命令:

地址:可以是行号、正则表达式、范围或组合。

N:第 N 行。
/pattern/:包含指定模式的行。
1,10:行号范围。
/start/,/end/:从 start 行到 end 行的范围。
动作:定义对匹配行执行的操作。

p:打印匹配的行。
d:删除匹配的行。
s/old/new/:替换第一个匹配的 old 为 new。
s/old/new/g:替换所有匹配的 old 为 new。
i\:在匹配行之前插入文本。
a\:在匹配行之后追加文本。

 

标签:grep,动作,--,NUM,模式,sed,awk,匹配
From: https://www.cnblogs.com/Zhangtao-linux/p/17697117.html

相关文章

  • android-解决 Android N 上 报错:android.os.FileUriExposedException
    我们使用手机的时候经常会看到应用程序提示升级,大部分应用内部都需要实现升级提醒和应用程序文件(APK文件)下载。一般写法都差不多,比如在启动app的时候,通过api接口获得服务器最新的版本号,然后和本地的版本号比较,来判断是否需要弹出提示框下载,当然也可以通过推送的自定义消息来实现......
  • onBackPressed 设置返回值,onActivityResult resultcode一直是0
    activity1:Intentintent2=newIntent(this,checkactivity.class);startActivityForResult(intent2,1000);activity2:@OverridepublicvoidonBackPressed(){super.onBackPressed();Intentintent=newIntent();setResult(result,in......
  • Paper Reading: Hashing-Based Undersampling Ensemble for Imbalanced Pattern Class
    目录研究动机文章贡献本文方法整体流程基于哈希的子空间划分方法基于距离的样本选择实验结果数据集和实验设置不同子空间划分方法的影响不同加权方案的抽样与其他方法比较优点和创新点PaperReading是从个人角度进行的一些总结分享,受到个人关注点的侧重和实力所限,可能有理解不到......
  • debezium报错:Caused by: io.debezium.DebeziumException:whose schema isn‘t known t
    debezium报错:Causedby:io.debezium.DebeziumException:whoseschemaisn’tknowntothisconnector“trace”:"org.apache.kafka.connect.errors.ConnectException:Anexceptionoccurredinthechangeeventproducer.Thisconnectorwillbestopped.Causedby:io.......
  • 支持 range-based for 循环的链式前向星模板
    众所周知,OI中图的存储主要有两种方式:使用std::vector实现的邻接表,以及链式前向星。前者的常数较大,有时候会出现卡不过去的情况,但是支持range-basedfor循环,遍历的时候代码更简洁。可不可以在使用链式前向星的同时,使用range-basedfor循环呢?如以下代码所示:Graphgraph;int......
  • Windows平台的grep——3.GUI界面的grepWin
    一、简介Borlandgrep和Windows系统提供的finStr都沿续了grep的传统,采用的是CGI界面,需要在命令行窗口输入或查询命令来使用。今天我们要为大家介绍一个Windows平台GUI界面的开源grep工具:grepWinApowerfulandfastsearchtoolusingregularexpressions网方网址:https://tools.st......
  • SAML-based SSO Flow
    概念SAML:SecurityAssertionMarkupLanguageSSO:singlesign-onSP:ServiceProviderIdP:IdentityproviderUA:UserAgent(Browser)SP-InitiatedSSOFlowTheprocessingisasfollows:1Theuserattemptstoaccessaresourceonsp.example.com.Theuserd......
  • sed文本流式编辑器复习
    Linux持续学习者的实用命令:sed原创 运维家 运维家 2023-09-0316:00 发表于北京收录于合集#linux39个#文本编辑器1个引言作为一名Linux持续学习者,我们经常需要对文本内容进行处理或修改,这时候sed命令就能派上用场了。sed是一个强大的流式文本编辑器,它可以在......
  • linux 中 awk命令实现文件按列精确匹配合并
     001、[root@pc1test01]#cata.txtA:10B:5C:12[root@pc1test01]#catb.txt100A50B88K99Y42C[root@pc1test01]#awk'{if(NR==FNR){ay[$1]=$2}else{print$2,$1,ay[$2]}}'FS=":"a.txtFS=""b.txtA10010......
  • linux 中awk命令同时多多个文件指定分隔符
     001、正确做法[root@pc1test01]#lsa.txtb.txt[root@pc1test01]#cata.txtA:10B:5C:12[root@pc1test01]#catb.txt100A50B42C[root@pc1test01]#awk'{if(NR==FNR){print$2}else{print$1}}'FS=":"a.txtFS=""b......