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

awk sub/gsub 2个匹配项之间的子字符串,末尾分隔符重复

awk是一种文本处理工具,它可以用于在文本文件中查找和替换特定的模式。其中,sub和gsub是awk中用于替换字符串的函数。

sub函数用于替换第一个匹配到的字符串,而gsub函数用于替换所有匹配到的字符串。这两个函数都可以用来替换两个匹配项之间的子字符串。

下面是一个示例,演示如何使用awk的sub和gsub函数来替换两个匹配项之间的子字符串,并在末尾添加重复的分隔符:

假设我们有一个文本文件test.txt,内容如下:

代码语言:txt
复制
Hello World! This is a test.

我们想要将"Hello"和"This"之间的子字符串替换为"New String",并在末尾添加重复的分隔符"---"。可以使用以下命令:

代码语言:txt
复制
awk '{sub(/Hello.*This/, "New String---&"); print}' test.txt

输出结果为:

代码语言:txt
复制
New String---This is a test.

在上述命令中,我们使用了正则表达式/Hello.*This/来匹配"Hello"和"This"之间的子字符串。替换字符串为"New String---&",其中"&"表示匹配到的字符串本身。最后使用print命令打印替换后的结果。

需要注意的是,以上示例中没有提及具体的腾讯云产品和链接地址,因为awk是一个在本地环境中运行的命令行工具,并不直接与云计算相关。但是,腾讯云提供了一系列云计算相关的产品和服务,可以根据具体需求选择适合的产品进行部署和管理。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

Linux中awk使用方法详解

input-file(s) 是待处理文件。 在awk中,文件每一行中,由域分隔符分开每一称为一个域。通常,在不指名-F域分隔符情况下,默认分隔符是空格。...字符串函数运用 函数名 描述 sub 匹配记录中最大、最靠左边字符串正则表达式,并用替换字符串替换这些字符串。...如要在整个文件中进行匹配需要用到gsub 第二个例子在整个记录第一个域中进行匹配,替换只发生在第一次匹配发生时候。...index 返回字符串第一次被匹配位置,偏移量从位置1开始 index(string, substring) 实例: awk '{ print index("test", "mytest") }...match函数会设置内建变量RSTART为字符串中子字符串开始位 置,RLENGTH为到字符串末尾字符个数。

3.6K31

Awk学习笔记

\> 匹配一个单词末尾字符串,锚定末尾。 \w 匹配一个字母数字组成单词。 \W 匹配一个非字母数字组成单词。 \‘ 匹配字符串开头一个空字符串。...范围模板 范围模板匹配从第一个模板第一次出现到第二个模板第一次出现之间所有行。如果有一个模板没出现,则匹配到开头或末尾。...,awk把域之间分隔符设为冒号。...字符串函数 sub函数匹配记录中最大、最靠左边字符串正则表达式,并用替换字符串替换这些字符串。如果没有指定目标字符串就默认使用整个记录。替换只发生在第一次匹配时候。...如要在整个文件中进行匹配需要用到gsub 第二个例子在整个记录第一个域中进行匹配,替换只发生在第一次匹配发生时候。 gsub函数作用如sub,但它在整个文档中进行匹配

2.4K30
  • awk 简单使用教程

    (s,r) 测试s中是否包含匹配r字符串 split(s,a,fs)在fs上将s分成序列a sub(s,) 用$0中最左边也是最长字符串替代 subtr(s...,p) 返回字符串s中从p开始后缀部分 substr(s,p,n)返回字符串s中从p开始长度为n后缀部分使用示例:gsubawk 'gsub(/^root/,"netseek") {print...}' /etc/passwd # 将以root开头字符串替换为netseek并打印awk 'gsub(/0/,2){print}' /etc/passwdawk '{print gsub(/0/,2)...重复这个过程,知道文件全部被读取完毕。每读取一行时,它就会检查该行和提供样式是否匹配。样式本身可以是正则表达式、条件以及行匹配范围等。...如果当前行匹配该样式,则执行{ }中语句 3) 当读至输入流末尾时,执行END { commands }语句块实用例子(持续更新)在这里会记录一下我日常实用觉得比较实用例子,持续更新。

    17800

    文本处理三剑客之—awk

    简单来说awk就是把文件逐行读入,以空格为默认分隔符将每行切片,切开部分再进行各种分析处理。 AWK基本用法?...sub      sub(r,s,[t]):对t字符串进行搜索r表示模式匹配内容,并将第一个匹配内容替换为s [root@localhost ~]# echo "2018:08:29 10:08...:30" |awk 'sub(/:/,"-",$1)' 2018-08:29 10:08:30 gsub     gsub(r,s,[t]):对t字符串进行搜索r表示模式匹配内容 [root@localhost...~]# echo "2018:08:29 10:08:30" |awk 'gsub(/:/,"-",$1)' 2018-08-29 10:08:30    对t字符串进行搜索r表示模式匹配内容,并全部替换为...s所表示内容 [root@localhost ~]# echo "2018:08:29 10:08:30" |awk 'gsub(/:/,"-",$0)' 2018-08-29 10-08-30 查找字符串

    1.2K30

    awk命令「建议收藏」

    [-F域分隔符]是可选。 filenames是待处理文件。在awk中,文件每一行中,由域分隔符分开每一称为一个域。通常,在不指名-F域分隔符情况下。默认分隔符是空格。...awk ‘{NR > n}’ filename 4.awk内置字符串函数 gsub(r,s) 在整个$0中用s替代r gsub(r,s,t) 在整个t中用s替代r index...(s,t) 返回s中字符串t第一位置 length(s) 返回s长度 match(s,r) 測试s是否包括匹配r字符串 split(str,array,fs ) 在...fs上将s分成序列a sprint(fmt,exp) 返回经fmt格式化后exp sub(r,s) 用$0中最左边最长串取代s substr(s,p) 返回字符串...awk数组用来从记录中收集信息,能够用于计算总和、统计单词以及跟踪模板被匹配次数等等。

    57710

    Linux Awk用法总结

    增加ARGV元素 ARGV与ARGC CONVFMT与OFMT ENVIRON RLENGTH与RSTART 运算符 语句(Statement) 数学函数 字符串函数 sub gsub index length...,默认为空白 NF 每个记录中字段个数 RS 记录分隔符,默认为回车 OFS 输出时字段分隔符,默认为空白 ORS 输出时记录分隔符,默认为回车 RLENGTH 被match函数匹配串长度...,后者表示匹配串位于目标字符串起始下标。...下面是一个简单替换例子: 在repl参数中&是一个元字符,它表示匹配内容,例如: gsub gsub(ere, repl[, in]) 描述:同sub()函数功能类似,只不过是gsub()是全局替换...例如: substr substr(s, m[, n]) 描述:返回从位置m开始,长度为n串,其中位置从1开始计算,如果未指定n或者n值大于剩余字符个数,则串一直到字符串末尾为止。

    6.6K40

    awk命令详解

    ` length([s])函数 index(字符串1,字符串2) match(s,r) tolower(srt) toupper(str) split(字符串,数组,分隔符) gsub(r,s,[,...字符串,数组,分隔符) 将字符串按特定分隔符切片后存储在数组中,如果没指定分隔符,则使用IFS定义。...,test,":"); print test[1],test[2]}' #指定冒号(:)为分隔符 gsub(r,s,[,t]) 将字符串t中所有与正则表达式r匹配字符串全部替换为s,如果没有指定字符串...' root:x:**:**:root:/root:/bin/bash sub(r,s,[,t]) 与gsub类似,但仅替换第一个匹配字符串,而不是替换全部 substr(s,i,[,n]) 对字符串...s进行截取,从第i位开始,截取n个字符串,如果n没有指定则一直截取到字符串s末尾位置 [15:16:17][root@localhost:~]# awk 'BEGIN{hi="Hello World"

    2.3K30

    AWK第二课

    一直到读取完毕,最后执行END 2、正则匹配 awk -F: ‘/^root/{print $1}’ /etc/passwd 说明:搜索root开头行打印第一个区域 3、内置变量 ARGC...命令行参数个数 ARGV 命令行参数排列 ENVIRON 支持队列中系统环境变量使用 FILENAME awk浏览文件名 FNR 浏览文件记录数 FS 设置输入域分隔符,等价于命令行 -...F选项 NF 浏览记录个数 NR 已读记录数 OFS 输出域分隔符 ORS 输出记录分隔符 RS 控制记录分隔符 示例: awk -F’:’ ‘{print “filename:”...index(string,find)返回字符串在父字符串位置 tolower(string)将所有字符都转成小写 toupper(string)将所有字符都转成大写 substr(string...,strat,length)截取字符串 match(string,ereg)支持正则匹配 sub(reg,rep,string)替换匹配第一个字符序列 gsub(reg,rep,string)替换匹配全部字符序列

    66470

    AWK常用技巧

    ~ 匹配,不匹配条件语句 $1~/root/ 匹配第一个字段包含字符root 所有记录 x{m} x 重复m 次 /(root){3}/ 需要注意一点是...,root 加括号和不 x{m,} x 重复至少m 次 /(root){3,}/ 加括号区别,x 可以表示字符串也 X{m,n} x 重复至少 m 次,...sub( Ere, Repl, [ In ] ) 用 Repl 参数指定字符串替换 In 参数指定字符串由 Ere参数指定扩展正则表达式第一个具体值。sub 函数返回替换数量。...substr( String, M, [ N ] ) 返回具有 N 参数指定字符数量子串。串从 String 参数指定字符串取得,其字符以 M 参数指定位置开始。...M 参数指定为将 String 参数中第一个字符作为编号 1。如果未指定 N 参数,则长度将是 M 参数指定位置到 String 参数末尾 长度。

    98940

    linux awk 函数定义变量赋值,Linux中Awk定义、用法详解

    被match函数匹配串长度   RSTART   被match函数匹配串位于目标字符串起始下标   下面主要介绍几个比较难理解内置变量:   ARGV与ARGC   ARGV与ARGC...例如:   利用环境变量也可以将值传递给awk:   可以利用for..in循环遍历数组:   与RSTART   与RSTART都是与match函数相关,前者表示匹配串长度,后者表示匹配串位于目标字符串起始下标...sub   sub(ere, repl[, in])   描述:简单地说,就是将in中匹配ere部分替换成repl,返回值是替换次数。如果in参数省略,默认使用$0。...下面是一个简单替换例子:   在repl参数中&是一个元字符,它表示匹配内容,例如:   gsub   gsub(ere, repl[, in])   描述:同sub()函数功能类似,只不过是gsub...例如:   substr   substr(s, m[, n])   描述:返回从位置m开始,长度为n串,其中位置从1开始计算,如果未指定n或者n值大于剩余字符个数,则串一直到字符串末尾为止。

    9.5K50

    文本处理三驾马车之 awk

    中语言中,通常测试一个记录、字段或字符串是否与一个正则表达式匹配匹配返回 1,不匹配返回 0。...expr ~ /r/ # 评估expr是否与r匹配匹配意思是expr一个串是否在正则表达式r定义字符串集中。...~右边或者内建需要正则表达式地方。在必要时候,该表达式会被转变成字符串,然后作为一个正则表达式来解释。以下三行 awk 命令完成同样功能:输出第 5 列为 10 行。...RS,行分隔符,默认是换行符 FS,列分隔符,默认是空格和制表符 ORS,输出行分隔符,默认为换行符 OFS,输出列分隔符,默认为空格 FILENAME,当前文件名 内置函数 字符串函数 sub()、...file awk '$1 ~ /EGFR/' file # 打印第1列含有EGFR列 # 按指定列去除重复行 # cat file 1 2 3 4 5 6 2 8 9 10 11

    16510

    linux awk 内置函数实例

    awk内置函数,主要分4种:算数函数、字符串函数、时间函数、一般函数 一、算术函数 以下算术函数执行与 C 语言中名称相同例程相同操作: 函数名 说明 atan2( y, x ) 返回 y/x 反正切...sub( Ere, Repl, [ In ] ) 用 Repl 参数指定字符串替换 In 参数指定字符串由 Ere 参数指定扩展正则表达式第一个具体值。sub 函数返回替换数量。...M 参数指定为将 String 参数中第一个字符作为编号 1。如果未指定 N 参数,则长度将是 M 参数指定位置到 String 参数末尾 长度。...1) subgsub使用 awk 'BEGIN{info="this is a test in 2013-01-04"; sub(/[0-9]+/, "!"..."found" : "no found";}'   # 匹配 数字 ,打印 “found; 不匹配, 打印 ”not found“ 结果: found     4) substr awk 'BEGIN

    1.1K20

    详解Linux三剑客之awk

    [1560503445878058229.png] [1560503451239021614.png] 模式即pattern,可以类似理解成sed模式匹配,可以由表达式组成,也可以是两个正斜杠之间正则表达式...没有该参数不能使用这种模式 /(cool){5,6}/ 同上 正则表达式运用,默认是在行内查找匹配字符串,若有匹配则执行action操作,但是有时候仅需要固定列表匹配指定正则表达式。...比如: 我想取/etc/passwd文件中第五列($5)这一列查找匹配mail字符串行,这样就需要用另外两个匹配操作符。并且awk里面只有这两个操作符来匹配正则表达式。...2 mp3.music.com 2 www.crediteasy.com 3 二、awk简单语法 2.1 函数sub gsub 替换功能 格式:sub(r, s ,目标) gsub(r, s...BaC DEF aHI GKL$213 CBa DEF GHI GKL$321 注:sub只会替换行内匹配第一次内容;相当于sed ‘s###’ gsub 会替换行内匹配所有内容;相当于sed

    1.2K30

    awk 简明教程

    NR 当前记录数 OFMT 数字输出格式(默认值是%.6g) OFS 输出字段分隔符(默认值是一个空格) ORS 输出记录分隔符(默认值是一个换行符) RLENGTH 由match函数所匹配字符串长度...RS 记录分隔符(默认是一个换行符) RSTART 由match函数所匹配字符串第一个位置 SUBSEP 数组下标分隔符(默认值是\034) 5....字符串函数 awk 内建字符串函数 函数 意义 gsub( Ere, Repl, [ In ] ) 除了正则表达式所有具体值被替代这点,它和 sub 函数完全一样地执行,。...sub( Ere, Repl, [ In ] ) 用 Repl 参数指定字符串替换 In 参数指定字符串由 Ere 参数指定扩展正则表达式第一个具体值。sub 函数返回替换数量。...M 参数指定为将 String 参数中第一个字符作为编号 1。如果未指定 N 参数,则长度将是 M 参数指定位置到 String 参数末尾 长度。

    1.3K20
    领券