liunx之vi命令中替換和查詢

2021-09-09 05:53:30 字數 1788 閱讀 9942

一、查詢

查詢命令

/pattern :向下查詢pattern匹配字串

?pattern:向上查詢pattern匹配字串

使用了查詢命令之後,使用如下兩個鍵快速查詢:

n:按照同一方向繼續查詢

n:按照反方向查詢

字串匹配

pattern是需要匹配的字串

1: /abc #查詢abc

除此之外,pattern還可以使用一些特殊字元,包括(/、^、$、*、.),其中前三個這兩個是vi與vim通用的,「/」為轉義字元。

1: /^abc #查詢以abc開始的行

2: /abc$ #查詢以abc結束的行

3: //^abc #查詢^abc字串

二、替換

基本替換

1: ?/vivian/sky/ #替換當前行第乙個 vivian 為 sky

2: ?/vivian/sky/g #替換當前行所有 vivian 為 sky

3: :n,katex parse error: expected 'eof', got '#' at position 19: …ivian/sky/ #̲替換第 n 行開始到最後一行中…s/vivian/sky/g #替換第 n 行開始到最後一行中每一行所有 vivian 為 sky

(n 為數字,若 n 為 .,表示從當前行開始到最後一行)

5: :%s/vivian/sky/ #(等同於:1,s/v

ivia

n/sk

y/:g

/viv

ian/

s//s

ky/)

替換每一

行的第一

個viv

ian為

sky1

>

6

m>::

s/vivian/sky/ :g/vivian/s//sky/) 替換每一行的第乙個 vivian 為 sky 1 6: :%s/vivian/sky/g #(等同於:1,

s/vivi

an/s

ky/:

g/vi

vian

/s//

sky/

)替換每

一行的第

乙個vi

vian

為sky

1>

6m>::

s/vivian/sky/g :g/vivian/s//sky/g)替換每一行的所有 vivian 為 sky

可以使用 #或+ 作為分隔符,此時中間出現的 / 不會作為分隔符

1: ?#vivian/#sky/# 替換當前行第乙個 vivian/ 為 sky/

2::%s+/oradata/apras/+/user01/apras1+ (使用+ 來 替換 / ): /oradata/apras/替換成/user01/apras1/

例如:1: ?/str1/str2/ #用字串 str2 替換行中首次出現的字串 str1

2: ?/str1/str2/g #用字串 str2 替換行中所有出現的字串 str1

3: :.,$ s/str1/str2/g #用字串 str2 替換正文當前行到末尾所有出現的字串 str1

4: :1,$ s/str1/str2/g #用字串 str2 替換正文中所有出現的字串 str1

5: :g/str1/s//str2/g #功能同上@toc

vi中替換命令

進行全文替換時詢問使用者確認每個替換需新增 c 選項,請輸入 s old new gc vi 替換的標準格式 range s ubstitute c e g p r i i count range 要替換的範圍可用一下 當前行 最後一行 全部等於 1,n 陣列 expr n 和 符號組成的表示式 如...

vi中的替換命令

1.基本的替換 s vivian sky 替換當前行第乙個 vivian 為 sky s vivian sky g 替換當前行所有 vivian 為 sky n,s vivian sky 替換第 n 行開始到最後一行中每一行的第乙個 vivian 為 sky n,s vivian sky g 替換第...

Linux中vi替換命令

s l 100 將100行內的小寫轉換成大寫 vi vim 中可以使用 s 命令來替換字串。s vivian sky 替換當前行第乙個 vivian 為 sky s vivian sky g 替換當前行所有 vivian 為 sky n,s vivian sky 替換第 n 行開始到最後一行中每一行...