vi/vim 中可使用 :s 命令來替換字符串html
:s/vivian/sky/ 替換當前行第一個 vivian 爲 skylinux
:s/vivian/sky/g 替換當前行全部 vivian 爲 skyshell
:n,$s/vivian/sky/ 替換第 n 行開始到最後一行中每一行的第一個 vivian 爲 skyvim
:n,$s/vivian/sky/g 替換第 n 行開始到最後一行中每一行全部 vivian 爲 skywindows
n 爲數字,若 n 爲 .,表示從當前行開始到最後一行ide
:%s/vivian/sky/(等同於 :g/vivian/s//sky/) 替換每一行的第一個 vivian 爲 sky工具
:%s/vivian/sky/g(等同於 :g/vivian/s//sky/g) 替換每一行中全部 vivian 爲 skypost
可使用 # 做爲分隔符,此時中間出現的 / 不會做爲分隔符ui
:s#vivian/#sky/# 替換當前行第一個 vivian/ 爲 sky/spa
:%s+/oradata/apras/+/user01/apras1+ (使用+ 來 替換 / ): /oradata/apras/替換成/user01/apras1/
1.
:s/vivian/sky/ 替換當前行第一個 vivian 爲 sky
:s/vivian/sky/g 替換當前行全部 vivian 爲 sky
2.
:n,$s/vivian/sky/ 替換第 n 行開始到最後一行中每一行的第一個 vivian 爲 sky
:n,$s/vivian/sky/g 替換第 n 行開始到最後一行中每一行全部 vivian 爲 sky
(n 爲數字,若 n 爲 .,表示從當前行開始到最後一行)
3.
:%s/vivian/sky/(等同於 :g/vivian/s//sky/) 替換每一行的第一個 vivian 爲 sky
:%s/vivian/sky/g(等同於 :g/vivian/s//sky/g) 替換每一行中全部 vivian 爲 sky
4.
可使用 # 做爲分隔符,此時中間出現的 / 不會做爲分隔符
:s#vivian/#sky/# 替換當前行第一個 vivian/ 爲 sky/
5.
刪除文本中的^M
問題描述:對於換行,window下用回車換行(0A0D)來表示,Linux下是回車(0A)來表示。這樣,將window上的文件拷到Unix上用時,總會有個^M.請寫個用在unix下的過濾windows文件的換行符(0D)的shell或c程序。
· 使用命令:cat filename1 | tr -d 「^V^M」 > newfile;
· 使用命令:sed -e 「s/^V^M//」 filename > outputfilename。須要注意的是在一、2兩種方法中,^V和^M指的是Ctrl+V和Ctrl+M。你必需要手工進行輸入,而不是粘貼。
· 在vi中處理:首先使用vi打開文件,而後按ESC鍵,接着輸入命令:%s/^V^M//。
· :%s/^M$//g
若是上述方法無用,則正確的解決辦法是:
· tr -d "\r" < src >dest
· tr -d "\015" dest
· strings A>B
6.
其它
利用 :s 命令能夠實現字符串的替換。具體的用法包括:
:s/str1/str2/ 用字符串 str2 替換行中首次出現的字符串 str1
:s/str1/str2/g 用字符串 str2 替換行中全部出現的字符串 str1
:.,$ s/str1/str2/g 用字符串 str2 替換正文當前行到末尾全部出現的字符串 str1
:1,$ s/str1/str2/g 用字符串 str2 替換正文中全部出現的字符串 str1
:g/str1/s//str2/g 功能同上
從上述替換命令能夠看到:g 放在命令末尾,表示對搜索字符串的每次出現進行替換;不加 g,表示只對搜索
字符串的首次出現進行替換;g 放在命令開頭,表示對正文中全部包含搜索字符串的行進行替換操做。
所有替換:
vi是unix和linux系統上最強大和最廣泛的文本編輯工具,通常而言,對於初次接觸vi的朋友,每每對它的字符替換不是很熟悉,下面作一個簡單的介紹:
對於字符替換,應該解決這樣幾個問題:
vi命令的各類選項就提供了這樣的選擇按住esc鍵,進入命令狀態,而後按:,進入命令模式,開始輸入查找和替換命令, 通常形式以下:
其中range的取值以下:
上述的標誌能夠進行組合:
如:
之前學vim時是用的vim tutor,記得那裏面好像有關於多行註釋的教程,不過剛纔要用時發現本身之前學得一點都不紮實,除了最經常使用的一些命令外,其餘命令一律不記得,看來好記性確實不趕爛筆頭,仍是得記下來啊。。。
ctrl+v 進入列模式,向下或向上移動光標,把須要註釋的行的開頭標記起來,而後按大寫的I,再插入註釋符,好比#,再按Esc,就會所有註釋。或者也能夠運行下面這些命令:
:s/^/# #用"#"註釋當前行
:2,50s/^/# #在2~50行首添加"#"註釋
:.,+3s/^/# #用"#"註釋當前行和當前行後面的三行
:%s/^/# #用"#"註釋全部行
BTW:在替換時要注意,某些字符是須要轉譯的,如空格、括號等。
VIM是被譽爲很是高效的文本編輯軟件。可是掌握並高效的使用是件有難度的事情。在VIM中進行快速的查找和替換是提升VIM使用效率的重要方法。下面是我在閱讀VIM用戶手冊時整理的一些資料:
:set ic(ignorecase 的縮寫)
忽略大小寫:set noic(noignorecase 的縮寫)
不忽略大小寫/\CWord
區分大小寫的查找 b: /\cword
不區分大小寫的查找