在Linux下的開發中,經常涉及到對文件中的字符進行處理,其中,對字符的替換操作也是非常的頻繁。
本文以一個實際的文件為例,詳細介紹了Linux下常用的vi替換字符命令,為相關的開發工作提供給了參考。
Vim學習指南 http://www.linuxidc.com/Linux/2013-08/89096.htm
快速學會 Vi編輯器 http://www.linuxidc.com/Linux/2013-08/88586.htm
強大的Vim 編輯器 http://www.linuxidc.com/Linux/2013-07/87544.htm
在CentOS 6.2上搭建Vim開發環境 http://www.linuxidc.com/Linux/2013-07/87363.htm
Vim 7.4a 發布,全新更快的正則表達式引擎 http://www.linuxidc.com/Linux/2013-07/87035.htm
CentOS 5.4 安裝高亮Vim編輯工具 http://www.linuxidc.com/Linux/2013-06/86508.htm
Vim技巧分享:C語言設置 http://www.linuxidc.com/Linux/2012-12/77124.htm
本文中被操作的文件為TestFile.txt,其中的內容如下:
www.linuxidc.com@linux:~/linuxidc/Test> cat TestFile.txt
12345678907890
ABCDABCDEFGHIJ
12345^&*()()
98765432103210
abcdabcdefghij123123
先進入vi編輯模式,如下:
www.linuxidc.com@linux:~/linuxidc/Test> vi TestFile.txt
依次執行以下替換命令(注意:每條命令都要以冒號“:”開頭),其中替換部分用紅色字體標注。
1) :n,$s/str1/str2/
將第n行開始到最後一行中每一行的第一個str1替換為str2。
例如,在TestFile.txt文件的vi編輯模式下執行:
:2,$s/123/321/
文件內容變為:
12345678907890
ABCDABCDEFGHIJ
32145^&*()()
98765432103210
abcdabcdefghij321123
可見,只有第三行和第五行的第一個“123”變成了“321”。第一行的“123”沒有被替換,因為命令是從第二行開始執行的。
2) :n,$s/str1/str2/g
將第n行開始到最後一行中每一行所有str1替換為str2。
緊接著上一條命令執行:
:2,$s/3210/1234/g
文件內容變為:
12345678907890
ABCDABCDEFGHIJ
32145^&*()()
98765412341234
abcdabcdefghij321123
可見,從第二行開始的所有的“3210”都變成了“1234”。
3) :%s/str1/str2/
將每一行的第一個str1替換為str2。
緊接著上一條命令執行:
:%s/123/321/
文件內容變為:
32145678907890
ABCDABCDEFGHIJ
32145^&*()()
98765432141234
abcdabcdefghij321321
可見,每一行的第一個“123”都變成了“321”。
4) :%s/str1/str2/g
將每一行中所有str1替換為 str2。
緊接著上一條命令執行:
:%s/890/098/g
文件內容變為:
32145670987098
ABCDABCDEFGHIJ
32145^&*()()
98765432141234
abcdabcdefghij321321
可見,每一行的所有“890”都變成了“098”。
更多詳情見請繼續閱讀下一頁的精彩內容: http://www.linuxidc.com/Linux/2014-07/104649p2.htm