如何根據關鍵字查詢緩存
若是是在文件的外面ui
grep -rl 關鍵字 目錄
例如:查找/home下全部內容含有hello的文件。grep -rl ‘hello’ /home
r:遞歸目錄與子目錄查找
l:只列出文件全名命令行
若是是在沒有打開文件的前提就用"cat 文件名 | grep "關鍵字""htm
若是是用vi打開文件後,在命令行下輸入「: /關鍵字」 按n會跳到下一個 , 按N會跳到上一個blog
若是要取消的話,則輸入 :set nonu
行號的設置是vi的環境設置,不會影響文本的內容。遞歸
在用vi打開文件後,怎麼替換某個關鍵字get
1. 基本替換 :s/str1/str2/ 替換當前行第一個str1爲str2 :s/str1/str2/g 替換當前行全部str1爲str2 :n,$s/str1/str2/ 替換第 n 行開始到最後一行中每一行的第一個str1爲str2 :n,$s/str1/str2/g 替換第 n 行開始到最後一行中每一行全部str1爲str2 (n 爲數字,若 n 爲 .,表示從當前行開始到最後一行) :%s/str1/str2/(等同於 :g/str1/s//str2/) 替換每一行的第一個str1爲str2 :%s/str1/str2/g(等同於 :g/str1/s//str2/g) 替換每一行中全部str1爲str2 2. 能夠使用 # 做爲分隔符,此時中間出現的 / 不會做爲分隔符 :s#str1/#str2/# 替換當前行第一個str1/ 爲str2/
在VI的命令模式下輸入「:set nu」 完整的是 「:set number」ast
多文件的關鍵字替換 ,三種方式擴展
Mahuinan法:sed
sed -i "s/oldString/newString/g" `grep oldString -rl /path/*.txt`
Sumly法
執行命令:
perl -p -i -e "s/China/Sumly/g" /www/*.htm /www/*.txt
上面的意思是說將www文件夾下全部的htm和txt文件中的「China」都替換爲「Sumly」
30T法
執行命令:
perl -pi -e 's|baidu|30T|g' `find /www -type f`
上面的意思是說將www文件夾下全部文件,不分擴展名,全部的「baidu」都替換爲「30T」
複製操做
yy命令複製當前整行的內容到vi緩衝區
yw複製當前光標所在位置到單詞尾字符的內容到vi緩存區,至關於複製一個單詞
y$複製光標所在位置到行尾內容到緩存區
y^複製光標所在位置到行首內容到緩存區
nyy例如:5yy就是複製5行
nyw例如:2yw就是複製兩個單詞
若是要複製第m行到第n行之間的內容,能夠在末行模式中輸入m,ny例如:3,5y複製第三行到第五行內容到緩存區。
粘貼
p:在光標所在位置的後面插入複製的文本,p是paste的首字母。
P:在光標所在位置的前面插入複製的文本。
np:在光標所在位置的後面插入複製的文本,共複製n次。
nP:在光標所在位置的前面插入複製的文本,共複製n次。