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 ...