awk的批量replace功能
需求
现在需要替换一个文本
文本内容如下
$cat file
MD_D1TS_1_060_I
MD_D1TS_1_061_F
MD_D1TS_1_062_U
MD_D1TS_1_002_U
MD_D1TS_1_027_I
MD_D1TS_1_028_U
MD_D1TS_1_003_I
MD_D1TS_1_004_F
MD_D1TS_1_030_I
MD_D1TS_1_005_U
MD_D1TS_1_031_F
MD_D1TS_1_032_I
MD_D1TS_1_006_U
MD_D1TS_1_007_I
MD_D1TS_1_033_F
MD_D1TS_1_034_U
MD_D1TS_1_008_I
MD_D1TS_1_009_U
MD_D1TS_1_035_I
MD_D1TS_1_036_F
就是简单的替换,ctrl + F功能就能搞定的事
但由于数量太多13000+条数据,时间会浪费很多,而且容易出错
只需要每次把替换的内容修改一下,替换的内容都记录在文本name2name中
直接按照文本执行就可以了
$cat name2name
MD_D1TS_1_060 ATS1-1-60
MD_D1TS_1_061 ATS1-1-61
MD_D1TS_1_062 ATS1-1-62
MD_D1TS_1_002 ATS1-1-2
MD_D1TS_1_027 ATS1-1-27
MD_D1TS_1_028 ATS1-1-28
MD_D1TS_1_003 ATS1-1-3
MD_D1TS_1_004 ATS1-1-4
MD_D1TS_1_030 ATS1-1-30
MD_D1TS_1_005 ATS1-1-5
MD_D1TS_1_031 ATS1-1-31
MD_D1TS_1_032 ATS1-1-32
MD_D1TS_1_006 ATS1-1-6
MD_D1TS_1_007 ATS1-1-7
MD_D1TS_1_033 ATS1-1-33
MD_D1TS_1_034 ATS1-1-34
MD_D1TS_1_008 ATS1-1-8
MD_D1TS_1_009 ATS1-1-9
MD_D1TS_1_035 ATS1-1-35
MD_D1TS_1_036 ATS1-1-36
思路
遇到这个问题第一反应就是使用sed,还有就是windows下的notepad++,sublime等软件
但这里最重要的就是将name2name文件进行存储
然后按照这个对应处理
最后想了想还是用awk的数组最熟悉
将要替换的文件内容作为下标key,替换的内容作为值value
然后再读取下一个文件处理
遇到问题
这里算是一个小坑吧,记录下
原来都是直接将文件复制到vim里,然后处理
看内容太多了,使用剪切板速度慢,干脆直接用ftp传入
结果文件处理结果跟我不一样
后来就用了20行测试了一下,想看下问题出在哪里,得到的结果是正确的
我懵逼了,难道awk的数组有限制?毕竟13000+的内容
突然反应过来,windows下的格式问题
$dos2unix filename
解决
awk 'NR==FNR{a[$1]=$2;next}{for(i in a){sub(i,a[i])};print}' name2name file
简单的说明一下
使用NR==FNR;next功能等于将name2name文件内容存入数组
for(i in a)想要读取文件下标只有使用这个方法,而且没有顺序(哈希,我也不懂,但知道是随机顺序)
sub(find,replace) 这是awk一个自带的函数,就是一个replace功能
使用js批量选中功能实现更改数据库中的status状态值(批量展示)
我们在开发项目的时候经常会在后台管理时用到批量展示功能来动态的修改数据库的值.下面以修改数据库的status状态值来实现批量展示功能.批量选中功能引用js来实现.前端html代码:
[Android Pro] Android 4.1 使用 Accessibility实现免Root自动批量安装功能
reference to : http://www.infoq.com/cn/articles/android-accessibility-installing?utm_campaign=info ...
实例:SSH结合Easyui实现Datagrid的批量删除功能
在我先前的基础上面添加批量删除功能.实现的效果如下 删除成功 通常情况下删除不应该真正删除,而是应该有一个标志flag,但flag=true表示状态可见,但flag=false表示状态不可见,为删除状 ...
关于awk的范围模式功能问题
关于awk的范围模式功能问题 man awk中这样写到 The pattern1, pattern2 form of an expression is called a range pattern. ...
awk -f program.file 功能使用
一.awk -f program.file 功能使用 一直没有使用过awk的-f功能,感觉鸡肋,不是很实用,更多的是因为没有需求的原因 下面介绍下awk -f的使用方法 awk可以指定默认的文件路径, ...
SSM实现批量删除功能
批量删除功能的实现 其实实现这个功能还是挺简单的 因为我这是直接拼接的,所以用了DOM方法来获取id话不多说直接上代码首先是复选框全选和反选这里的话 获取最上面一个复选框的状态同步到拼接的复选框 $ ...
layui表格的批量删除功能
// 批量删除功能 // 1.得到table选中行内容 // 2.得到删除需要的唯一值,一般是id; // 3.将所要删除的项加入到数组中: // 4.判断是否选中: // 5.发送ajax请求,并附 ...
个人永久性免费-Excel催化剂功能第101波-批量替换功能(增加正则及高性能替换能力)
数据处理无小事,正如没有人活在真空理想环境一下,在数据分析过程中,也没有那么真空理想化的数据源可以使用,数据处理占据数据分析的80%的时间,每一个小小的改善,获益都良多.Excel查找替换,有其局限性 ...
Taurus.MVC 2.3.4 :WebAPI 文档集成测试功能升级:WebAPI批量自动化测试功能。
前言: 最近升级了一下Taurus.MVC,现在最新版本是:Taurus.MVC 2.3.4,源码版本和nuget同步. 下面分三个步骤介绍下新版本的WebAPI批量自动化测试功能. 1.启用WebA ...
随机推荐
NOI 题库 1792
1792 迷宫 描述 一天Extense在森林里探险的时候不小心走入了一个迷宫,迷宫可以看成是由n * n的格点组成,每个格点只有2种状态,.和#,前者表示可以通行后者表示不能通行.同时当Exten ...
Flex 日期和字符串之间转换
字符串转为日期: var dateTime:Date= DateField.stringToDate(deTime, "YYYY-MM-DD");//"YYYY-MM-D ...
The sound of silence引发的关于互联网以及教育的利弊思考
“茫茫人海里,人群跟著人群,我们无时无刻不感到孤寂.停下来让我们好好沟通吧,否则人类的关系将日形恶化,沦为新世纪科技的牺牲品” ------- Simon 说实话,我第一次看应该 ...
python自动化测试遇到的零零碎碎
1.需求: 提取xx.py中所有的函数名,形成一个类似于索引的参考. 解决方式: grep "def" *.py| awk '{print $2}'|awk -F ':' '{pr ...
12款令程序员惊叹的CSS3效果库
最新的CSS3都配备了新的特性,来设计创建动画和互动的网页.在本文中,可以找到一些非常优秀的CSS3效果库,来让你的Web设计看起来更加引人注目.还在等什么?让我们一起看起来吧! Animate.cs ...
Docker在Linux上运行NetCore系列(五)更新应用程序
转发请注明此文章作者与路径,请尊重原著,违者必究. 本篇文章与其它系列文章不同,为了方便测试,新建了一个ASP.Net Core视图应用. 备注:下面说的应用,只是在容器中运行的应用程序. 查看现在运 ...
Python2.7-robotparser
robotparser 模块,用于解析网站的 robots.txt 文件,robots.txt 文件是用于指定搜索引擎爬虫的访问权限的,此模块在 python3 中重命名为 urllib.robotp ...
Vs2013 坑爹的Target framework问题
之前的一个项目是使用Vs2008来开发的,因为这段时间家里有事情所以只能跟经理协商在家里来做此项目,因为家里的VS是2013的所以在迁移时没有什么问题 但今天我更改一个类库的文件后重新生成解决方案结果 ...
jvm options
http://www.oracle.com/technetwork/java/javase/tech/vmoptions-jsp-140102.html#Options Categories of J ...
halcon程序输出成c++程序
halcon语法程序: dev_open_window (0, 300, -1, -1, 'black', WindowID) read_image (Die4, 'C:/Users/Public/D ...