Linux gensub函数用法
来源:互联网 发布:js控制浏览器最小宽度 编辑:程序博客网 时间:2024/06/17 03:17
2017-11-21 00:00:09: 现在最前,吐槽一下,现在baidu上搜点东西,清一色的抄袭文章,真是受不了,自己写一个记录一下吧!还得翻墙上gg!
什么是gensub?
gensub是LINUX字符处理函数之一,不是那么的常见,但是却非常的好用的简便。在处理日志等场景中,往往显得非常的优雅
几个例子
案例1
替换某字符串中的第某个字符为新字符
echo 'xxxx' awk '{print $0=gensub("x","1","4")}'xxx1ecgo 'xxxx' awk '{pring $0=gensub("x","1","g")}'1111
案例2
替换处理文本格式
more interst_obj_to_tag.log 孕妇:孕妇,产妇,补锌,补硒,补铁,补钙,补碘宝宝餐:婴幼儿,婴儿(6-8个月),婴儿(8-10个月)养生:养发,健脾养胃,提高免疫食疗:疾病养颜:美白,排毒养颜,紧致肌肤,祛痘祛斑减肥:减肥瘦身素食:素食者新手:新手菜汤:汤烘焙:烘焙辣:辣海鲜:海鲜酸甜:酸甜清淡:清淡
现在需要将单行变换为多行,例如第一行,转换为:
孕妇:孕妇孕妇:产妇孕妇:补锌孕妇:补硒孕妇:补铁孕妇:补钙孕妇:补碘
函数写法
$ more handle_obj_to_tag.sh #!/bin/shcat interst_obj_to_tag.log | awk -F ':' '{ area=gensub(/省|市|自治区|壮族|维吾尔族|回族/,"","g",$1); tags=$2","$3","$4","$5","$6","$7; n=split(tags,tag,",") for(i=1;i<=n;i++){ if(tag[i]!=""){ print area","tag[i]",interest"; } }}'>data_obj_tag.log
新文件:
孕妇,孕妇,interest孕妇,产妇,interest孕妇,补锌,interest孕妇,补硒,interest孕妇,补铁,interest孕妇,补钙,interest孕妇,补碘,interest宝宝餐,婴幼儿,interest宝宝餐,婴儿(6-8个月),interest宝宝餐,婴儿(8-10个月),interest养生,养发,interest养生,健脾养胃,interest养生,提高免疫,interest食疗,疾病,interest养颜,美白,interest...
阅读全文
1 0
- Linux gensub函数用法
- 跑通kaldi中timit试验以及awk不能找到gensub函数解决方法
- awk RS,gensub
- linux select 函数用法!
- linux select 函数用法!
- linux select函数用法
- linux select 函数用法!
- linux wait函数用法
- linux select函数用法
- linux getopt函数用法
- Linux getopt 函数用法
- linux select函数用法
- linux select函数用法
- linux select函数用法
- linux select函数用法
- linux pthread_create()函数用法
- linux函数用法
- linux kill函数用法
- source insight 高亮显示字符串的引用情况
- [leetcode] 442. Find All Duplicates in an Array
- bzoj 4417: [Shoi2013]超级跳马(矩阵合并+快速幂)
- 栈和队列的应用
- [算法分析与设计] leetcode 每周一题: Find Right Interval
- Linux gensub函数用法
- 数据仓库与联机分析处理笔记
- hdu_2004 成绩转换
- 因子分析(Factor Analysis Model)算法推导
- Ubuntu下Nginx配置Https
- ActiveMQ消息持久化
- C++运算符
- 使用rvest包抓取新浪财经A股交易数据
- 你所不知道的Chrome调试技巧(上)