CentOS常用管理命令(三):文件編輯操作

CentOS常用管理命令(三):文件編輯操作

vi 命令

常用形式:

vi

直接輸入vi可以查看vi的版本信息

vi [filepath]

若存在該文件,則打開存在文件;若不存在,將新建文件名為[文件名]的文件。

模式:

命令模式

輸入模式

末行模式

注:無論在任何模式下按【Esc】都可以返回到命令模式。

命令模式

光標移動:

k 上

j 下

h 左

l 右

^ 移動到行首

$ 移動到行尾

[第n行]G 跳轉到第n行

翻頁:

Ctrl+F 向前翻一頁

Ctrl+B 向後翻一頁

Ctrl+U 向前翻半頁

Ctrl+D 向後翻半頁

刪除操作

x 刪除光標位置的字符

dd 刪除光標所在行

dw 刪除當前字符到單詞尾包括空格的所有字符

撤銷操作

u 取消最近一次操作

U 取消所有操作

Ctrl+R 恢復對u命令的操作

複製操作

[n]yy 複製n行,若無行數,只複製當前行

[n]yw 複製n個單詞,若無行數,只複製光標到單詞尾

y$ 複製光標到行尾

y^ 複製光標到行首

輸入模式

光標移動:

Home 行首

End 行尾

Page Up 向前翻頁

Page Down 向後翻頁

Delete 刪除光標位置的字符

末行模式

保存與退出:

:q! 強制退出

:w 保存

:w [文件名] 另存為

:wq 保存並退出

:wq! 保存並強制退出

顯示行號

set nu 顯示行號

set nonu 取消行號

查找和替換:

/[key] 從光標位置開始找key(n:下一個,N:上一個)

:s/dtinone/jiamigu 用jiamigu替換首次出現的dtinone

:s/dtinone/jiamigu/g 用jiamigu替換行中出現的所有dtinone

:[n,m] s/dtinone/jiamigu/g 用jiamigu替換第n行到第m行中出現的dtinone

: % s/dtinone/jiamigu/g 用jiamigu替換所有的dtinone

:s/dtinone/jiamigu/c 用jiamigu替換首次出現的dtinone,用戶需要確認。[/c]適用上面所有命令,其中y為替換,n為不替換,a為剩下的所有都替換,q為退出,l為替換並退出

sed 命令

常用形式:

注:所有對原文件的修改都不會真實生效,需要加上參數-i才會生效。

打印:

sed ‘/dtinone/p’ dtinone.txt

打印dtinone.txt中包含dtinone的行。默認情況sed把所有行都打印到屏幕,如果某行匹配到模式,則把該行另外再打印一遍。

sed -n ‘/dtinone/p’ dtinone.txt

和上面一樣,只是去掉了sed的默認行為,只會打印匹配的行。

刪除:

sed ‘3,$d’ dtinone.txt

刪除從第3行到最後一行的內容。

sed ‘$d’ dtinone.txt

刪除最後一行的內容

sed ‘/dtinone/d’ dtinone.txt

刪除包含dtinone的行。

sed ‘3d’ dtinone.txt

刪除第三行的內容

替換:

sed ‘s/dtinone/jiamigu/g’ dtinone.txt

把行內的所有dtinone替換成jiamigu,如果沒有g,則只替換行內的第一個dtinone

sed -n ‘s/dtinone/jiamigu/p’ dtinone.txt

只打印發生替換的那些行

sed ‘s/dtinone/&jiamigu/’ dtinone.txt

在所有的dtinone後面添加jiamigu(&表示匹配的內容)

sed -n ‘s/dtinone/jiamigu/gp’ dtinone.txt

把所有的dtinone替換成jiamigu,並打印發生替換的那些行

sed ‘s#dtinone#jiamigu#g’ dtinone.txt

把所有的dtinone替換成jiamigu,跟在替換s後面的字符就是查找串和替換串之間的分割字符,本例中是#

sed -e ‘1,3d’ -e ‘s/dtinone/jiamigu/g’ dtinone.txt

刪除1-3行,然後把其餘行的dtinone替換成jiamigu

讀文件:

sed ‘/dtinone/r new_dtinone.txt’ dtinone.txt

在包含dtinone的行後讀入new_dtinone.txt的內容

寫文件:

sed ‘/dtinone/w new_dtinone.txt’ dtinone.txt

在包含dtinone的行寫入new_dtinone.txt

追加:

sed ‘/dtinone/a\jiamigu’ dtinone.txt

在包含dtinone的行後新起一行,寫入jiamigu

插入:

•sed ‘/dtinone/i\jiamigu’ dtinone.txt

在包含dtinone的行前新起一行,寫入jiamigu

修改:

sed ‘/dtinone/c\jiamigu’ dtinone.txt

在包含dtinone的整行替換成jiamigu,舊文本被覆蓋

讀取下一行:

sed ‘/dtinone/{n ; s/bigdata/ai/g;}’ dtinone.txt

匹配第一個包含dtinone的行後的所有行,替換bigdata為ai

轉換:

sed ‘y/dtinone/DTINONE/’ dtinone.txt

將d替換成D,t替換成T,i替換成I……(正則表達式元字符不起作用)

退出:

sed ‘/dtinone/{ s/bigdata/ai/ ;q; }’ dtinone.txt

在某行包含了dtinone,把bigdata替換成ai,然後退出sed,不繼續執行下一個匹配的。


分享到:


相關文章: