首页 > 系统相关 >linux 中 awk 之 sub、gsub、substr、index、match函数的用法

linux 中 awk 之 sub、gsub、substr、index、match函数的用法

时间:2024-02-23 10:04:26浏览次数:30  
标签:test1 index abc sub pc1 substr abcd txt

 

001、awk中sub函数的用法:sub用于替换,其语法如下:

a、

[root@pc1 test1]# ls
a.txt
[root@pc1 test1]# cat a.txt                          ## 测试数据
abcdxabcd abcd xyz qmn
opqriytyx abcd uny een
abcdkabcd eabc abc abc
[root@pc1 test1]# awk '{sub("abc", "QQQ", $0); print $0}' a.txt  ## 替换对象是整个记录(一行);替换每行匹配的第一个
QQQdxabcd abcd xyz qmn                                           ## 顺序依次是匹配内容,替换内容和替换对象
opqriytyx QQQd uny een
QQQdkabcd eabc abc abc

 

b、替换对象也可以是单独的一个字段,比如第一个字段$1;

[root@pc1 test1]# ls
a.txt
[root@pc1 test1]# cat a.txt                                        ## 测试数据
abcdxabcd abcd xyz qmn
opqriytyx abcd uny een
abcdkabcd eabc abc abc
[root@pc1 test1]# awk '{sub("abc", "QQQ", $1); print $0}' a.txt    ## 限定匹配字段为第一个字段
QQQdxabcd abcd xyz qmn
opqriytyx abcd uny een
QQQdkabcd eabc abc abc

 

002、gsub: gsub和sub的区别就是gsub替换的是整行的所有匹配内容,而sub替换的是匹配的第一个,示例如下:

[root@pc1 test1]# ls
a.txt
[root@pc1 test1]# cat a.txt                                          ## 测试数据
abcdxabcd abcd xyz qmn
opqriytyx abcd uny een
abcdkabcd eabc abc abc
[root@pc1 test1]# awk '{sub("abc", "QQQ", $0); print $0}' a.txt      ## sub替换效果
QQQdxabcd abcd xyz qmn
opqriytyx QQQd uny een
QQQdkabcd eabc abc abc
[root@pc1 test1]# awk '{gsub("abc", "QQQ", $0); print $0}' a.txt     ## gsub替换效果
QQQdxQQQd QQQd xyz qmn
opqriytyx QQQd uny een
QQQdkQQQd eQQQ QQQ QQQ

 。

 

标签:test1,index,abc,sub,pc1,substr,abcd,txt
From: https://www.cnblogs.com/liujiaxin2018/p/18028707

相关文章

  • CF1398C Good Subarrays(写给我们萌新团体)
    GoodSubarrays传送门:GoodSubarrays-洛谷|计算机科学教育新生态(luogu.com.cn)思路暴力!!!!!一如既往的暴力!!!复杂度O(n^2)数据n到1e5TLE必定TLE我们可以用一个桶来优化实质上其实还是高中所学的排列组合思想第一步:当然是前缀和了,这边讲给新手写一下,有点冗杂,是高手直接......
  • [ARC133B] Dividing Subsequence
    DividingSubsequence这道题与最长公共子序列类似,可以先去水一水那道题。题意本题就是让你从\(p\)里面选出一个子序列\(b_i\)和\(q\)里面选出一个子序列\(a_i\),我们要使\(b_i\)是\(a_i\)的倍数。解法本题直接用动态规划,是\(O(n^2)\)做法,会超时,因此我们用树状数......
  • subprocess中的return_code与poll
    subprocess中的return_code与pollp=subprocess.Popen('ping8.8.8.8',shell=True,stdout=subprocess.PIPE,stderror=subprocess.DEVNULL)whilenotp.poll():#p.poll()即为return_codeprint(p.stdout.read().decode())#return_code=p.poll()#......
  • (ColumnTypes[number] & { editable?: boolean; dataIndex: string; })[]
    (ColumnTypes[number]&{editable?:boolean;dataIndex:string;})[]在TypeScript中,这段类型定义可以分解理解:ColumnTypes[number]:首先,如果ColumnTypes是一个数组类型(如Column[]),那么ColumnTypes[number]就是获取数组中的元素类型。在TypeScript中,number表示数组......
  • Go 100 mistakes - #41: Substrings and memory leaks
        WeneedtokeeptwothingsinmindwhileusingthesubstringoperationinGo. First,theintervalprovidedisbasedonthenumberofbytes,notthenumberofrunes. Second,asubstringoperationmayleadtoamemoryleakastheresultings......
  • uniapp编译成微信小程序报错-Component is not found in path "components/canvaspage
     问题:我需要将components/canvaspagebg/index引入进pages/index/index   报错了pages/index/index页面引入: uni-app程序编译成微信小程序后,组件无法显示,控制台报错,错误信息为: 我查看了路径,是对的看网上的解决办法就是 我取消勾选后刷新页面就可以了,此时我在选中......
  • 【Azure Function App】在VS Code中,创建好Function App后部署到Azure中,无法选择Subscr
    问题描述在VSCode中,创建好FunctionApp后部署到Azure中,无法选择Subscriptions问题解答对于无法使用VSCode 部署FunctionApp 到Azure,最近有一个更新,导致了AzureResource 插件的 v0.8.0 版本不支持中国区登录目前的解决办法是:通过手动安装的方式把VSCode中的Azu......
  • nvm list available 命令执行异常 Could not retrieve https://npm.taobao.org/mirror
    异常:无法连接镜像地址 解决方法在nvm的安装位置找到文件settings.txt,修改镜像地址修改前 修改后保存再次运行命令 ......
  • A trip through the Graphics Pipeline 2011: Index
    原文地址https://fgiesen.wordpress.com/2011/07/09/a-trip-through-the-graphics-pipeline-2011-index/Welcome.ThisistheindexpageforaseriesofblogpostsI’mcurrentlywritingabouttheD3D/OpenGLgraphicspipelinesasactuallyimplementedbyGPUs.Alot......
  • sublime 选择有规律的数据,同时快速编辑多行内容 去除重复行或者只保留唯一值
     同时快速编辑多行内容:五种方式:1,鼠标选中多行,按下CtrlShiftL(CommandShiftL)即可同时编辑这些行;2,鼠标选中文本,反复按CTRLD(CommandD)即可继续向下同时选中下一个相同的文本进行同时编辑;3,鼠标选中文本,按下AltF3(Win)或CtrlCommandG(Mac)即可一次性选择全......