Ⅰ linux查找目錄下的所有文件中是否含有某個字元串
1、可以使用grep命令來查找當前目錄下所有文件中包含的某個特定字元。
2、示例:查找當前目錄下所有帶有set的文件 。
說明:
-r 是遞歸查找
-n 是顯示行號
* : 表示當前目錄所有文件,也可以是某個文件名
Ⅱ Linux緋葷粺涓璿im宸ュ叿甯哥敤鍛戒護澶у叏
鍦╨inux涓嬪仛寮鍙戱紝鐢氳嚦鏄鍙鍋氱$悊緇存姢宸ヤ綔錛屼篃灝戜笉浜哣im鐨勪嬌鐢ㄣ備綔涓轟竴涓鏂版墜錛屾垜涔熸槸鍒氬垰鎺ヨЕ錛屾湰鑺傚皢鎴戞棩甯鎬嬌鐢ㄦ垨鏀墮泦鐨刅im甯哥敤鍛戒護璁板綍涓嬫潵銆
褰撶劧錛岀洿鎺ュ湪鍛戒護琛屼笂杈撳叆錛歷imtutor錛屽氨鍙浠ュ︿範鍒癡im鐨勬墍鏈夊懡浠や簡銆俈im寰堝己澶э紝寰堝氱墰浜哄湪vim閲岄泦鎴愬緢澶氭彃浠朵粈涔堢殑錛屼絾榪欓噷鍙浠嬬粛鍩烘湰vim鍛戒護銆
縐誨姩鍛戒護
h "宸j "涓媖 "涓妉 "鍙硍 "鍏夋爣縐誨姩鍒頒笅涓涓鍗曡瘝鐨勯栧瓧絎 a word forwardb "鍏夋爣縐誨姩鍒頒笂涓涓鍗曡瘝鐨勯栧瓧絎e "鍏夋爣縐誨姩鍒頒笅涓涓鍗曡瘝鐨勫熬瀛楃ge "鍏夋爣縐誨姩鍒頒笂涓涓鍗曡瘝鐨勫熬瀛楃$ "灝嗗厜鏍囩Щ鍔ㄥ埌褰撳墠琛岃屽熬^ "灝嗗厜鏍囩Щ鍔ㄥ埌褰撳墠琛岀涓涓闈炵┖鐧藉瓧絎0 "灝嗗厜鏍囩Щ鍔ㄥ埌褰撳墠琛岀涓涓瀛楃
娉錛 榪欎簺鍛戒護闄や簡'0'鍛戒護浠ュ栭兘鍙浠ュ湪鍓嶉潰鎺ュ彈涓涓璁版暟錛2$錛涗笂闈㈡墍鏈夊懡浠ら兘鍙浠ュ湪鍓嶉潰鎺ュ彈涓浜涙搷浣滃懡浠わ紝濡俤$錛宒w絳夈
淇鏀瑰懡浠
x "鍒犻櫎涓涓瀛楃d "鍏跺悗璺熶換浣曚竴涓浣嶇Щ鍛戒護錛屽皢鍒犻櫎浠庡綋鍓嶅厜鏍囧埌浣嶇Щ緇堢偣澶勭殑鏂囨湰 "鍐呭癸紝濡俤w錛宒elete word c "涓巇鍛戒護鍔熻兘綾諱技錛屼笉鍚岀殑鍦ㄦ墽琛屽畬鍒犻櫎鍚庡懡浠よ繘鍘籌nsert妯″紡錛宑hange dd "鍒犻櫎涓鏁磋寉y "澶嶅埗涓鏁磋宲 "鎶婂壀璐存澘鍐呭圭矘甯栧埌褰撳墠浣嶇疆
vimdiff 1.c 2.c "鍒涘緩涓涓鍨傜洿鍒嗗壊紿楀彛姣旇緝榪欎袱涓鏂囦歡涓嶅悓鐨勫湴鏂
鎼滅儲鍛戒護
fa "鍗曞瓧絎︽悳緔錛宖a鏄鍦ㄥ綋鍓嶈屾悳緔涓嬩竴涓猘,find a/string "鍏ㄦ枃鏈鎼滅儲涓涓瀛楃︿覆錛屽傝佹壘鍒板崟璇"func"鍒欑敤/func "濡傛灉鏂囨湰鏈夊氫釜func,鎸変笅n灝變細縐誨姩鍒版帴涓嬫潵鐨刦unc浣嶇疆涓
"n鍓嶉潰涔熷彲浠ユ帴鍙楁暟瀛楄℃暟錛屽3n錛屽氨浼氭壘緔ф帴絎涓変釜func
?string "涓/string鐨勫姛鑳界浉鍚岋紝鍞涓鐨勫尯鍒灝辨槸鎼滅儲鐨勬柟鍚戠浉鍙
娉錛
鍙浠ョ敤錛歴et noingorecase 蹇界暐瀛楃﹀ぇ灝忓啓錛
/鍜岋紵鍛戒護閮芥湁璁板繂鍔熻兘錛屽彲浠ョ敤澶氭UP閿閫夋嫨鎼滅儲鍘嗗彶錛岃板綍鍛戒護鏈澶х殑鍘嗗彶鏉℃暟鍙浠ュ湪浼氳瘽viminfo涓婃洿鏀癸紱
鎼滅儲瀛楃.*/?%$^[]絳夌壒孌婂瓧絎﹁佸湪鍓嶉潰鍔犱竴涓鍙嶆枩鏉犺漿鎰忥紱
鎼滅儲鍒板ょ珛鐨勫崟璇嶏紝涔熷氨鏄鍓嶅悗閮芥病鏈夊叾浠栧瓧絎︾殑錛堥櫎浜嗙┖鏍礆紝鍒惰〃絎︼級,濡傚彧鎼渢he,涓嶆兂鎼滃埌there鎴杦hether榪欐牱鐨勶紝瑕佺敤//the/錛
鍙浠ョ敤:set hlsearch鎶婅佹悳緔㈢殑鍗曡瘝楂樹寒鏄劇ず錛
瀹氫綅鍛戒護
G "鍏夋爣縐誨姩鍒版枃浠剁殑鏈鍚庝竴琛岋紝鎴栬匰hift+G15G "鍏夋爣縐誨姩鍒版枃浠剁殑絎15琛岋紝鎴栬15gggg "鍏夋爣縐誨姩鍒版枃浠剁殑絎涓琛 45% "鍏夋爣縐誨姩鍒版枃浠45%澶凥 "鍏夋爣縐誨姩鍒板綋鍓嶅睆騫曠殑鏈寮濮婱 "鍏夋爣縐誨姩鍒板綋鍓嶅睆騫曠殑涓闂碙 "鍏夋爣縐誨姩鍒板綋鍓嶅睆騫曠殑鏈鍚
娉錛 CTRL+g鏌ョ湅褰撳墠鍏夋爣浣嶇疆
婊氬睆鍛戒護
CTRL+U "紿楀彛鍚戜笂婊氬崐灞廋TRL+D "紿楀彛鍚戜笅婊氬崐灞廋TRL+E "鍚戜笂婊氫竴琛岋紝娌″お澶у疄闄呮剰涔塁TRL+Y "鍚戜笅婊氫竴琛孋TRL+F "鍚戝墠婊氫竴鏁村睆CTRL+B "鍚戝悗婊氫竴鏁村睆zz "褰撳墠琛岀疆浜庡睆騫曚腑澶畓t "褰撳墠琛岀疆浜庡睆騫曢《絝痾b "褰撳墠琛岀疆浜庡睆騫曞簳絝
鍒嗗壊紿楀彛
:split "妯鐫鍒嗗壊:new "妯鐫娣誨姞涓涓鏂扮獥鍙:vsplit "絝栫潃鍒嗗壊:vnew "絝栫潃娣誨姞鏂扮獥鍙CRTL+W w "鎸夐『搴忓垏鎹㈠皬紿楀彛:qall "鍏抽棴鎵鏈夌獥鍙:wall "淇濆瓨鎵鏈夌獥鍙
鏍囩(tab)鍛戒護
:tabedit filename "鍦ㄦe湪緙栬緫鐨剉im紿楀彛寤轟竴涓鍙玣ilename鐨則ab欏:tab split "鏂板緩涓涓猼ab欏礸t "縐誨姩鍒頒笅涓涓猼ab欏礸T "縐誨姩鍒頒笅涓涓猼ab欏
Ⅲ vim中如何查找和替換字元串
一、 字元串的查找
1. vim 中用 / 和 ? 來查找字元串,兩者的區別是:
/string 會高亮顯示游標後匹配的第一個字元串,回車後游標移到該字元串的第一個字母;
string 會高亮顯示游標前匹配的第一個字元串,回車後游標移到該字元串的第一個字母。
在回車之後,按n鍵同方向轉到下一個匹配的字元串,按N鍵反方向轉到上一個匹配的字元串。
2. 用命令 :set ic 和 :set noic 來分別設置查找時不區分和區分大小寫。
如果查找特殊字元,如 ^、$、*、/ 和 .,需要在前面加 \ 來轉義。
二、字元串的替換
1. vim 中可用 :s 命令來替換字元串,具體如下:
:s/str1/str2/ 替換當前行第一個 str1 為 str2
:s/str1/str2/g 替換當前行中所有 str1 為 str2
:m,ns/str1/str2/ 替換第 n 行開始到最後一行中每一行的第一個 str1 為 str2
:m,ns/str1/str2/g 替換第 n 行開始到最後一行中所有的 str1 為 str2
(註:m和n 為數字,若m為 .,表示為當前行開始;若n為$,則表示到最後一行結束)
如果使用 # 作為分隔符,則中間出現的 / 不會作為分隔符,比如:
:s#str1/#str2/# 替換當前行第一個 str1/ 為 str2/
:%s+/oradata/apras/+/user01/apras1+ (使用+ 來 替換 / ): /oradata/apras/替換成/user01/apras1/
2. 其他:%s/str1/str2/(等同於 :g/str1/s//str2/) 替換每一行的第一個 str1 為 str2
:%s/str1/str2/g(等同於 :g/str1/s//str2/g 和 :1,$ s/str1/str2/g ) 替換文中所有 str1 為 str2
從替換命令可以看到,g 放在命令末尾,表示對搜索字元串的每次出現進行替換;不加 g,表示只對搜索
Ⅳ Linux下Grep命令的詳細使用方法
在linux中grep命令是非常有用的,它和管道(|)配合使用,非常強大,用於搜索文本文件.如果想要在幾個文本文件中查找一字元串,可以使用『grep』命令。『grep』在文本中搜索指定的字元串。
假設您正在『/usr/src/linux/Documentation』目錄下搜索帶字元串『magic』的文件:
$ grep magic /usr/src/linux/Documentation/*
sysrq.txt:* How do I enable the magic SysRQ key?
sysrq.txt:* How do I use the magic SysRQ key?
其中文件『sysrp.txt』包含該字元串,討論的是 SysRQ 的功能。
默認情況下,『grep』只搜索當前目錄。如果此目錄下有許多子目錄,『grep』會以如下形式列出:
grep: sound: Is a directory
這可能會使『grep』的輸出難於閱讀。這里有兩種解決的辦法:
明確要求搜索子目錄:grep -r
或忽略子目錄:grep -d skip
當然,如果預料到有許多輸出,您可以通過 管道 將其轉到『less』上閱讀:
$ grep magic /usr/src/linux/Documentation/* | less
這樣,您就可以更方便地閱讀。
有一點要注意,您必需提供一個文件過濾方式(搜索全部文件的話用 *)。如果您忘了,『grep』會一直等著,直到該程序被中斷。如果您遇到了這樣的情況,按
下面是一些有意思的命令行參數:
grep -i pattern files :不區分大小寫地搜索。默認情況區分大小寫,
grep -l pattern files :只列出匹配的文件名,
grep -L pattern files :列出不匹配的文件名,
grep -w pattern files :只匹配整個單詞,而不是字元串的一部分(如匹配『magic』,而不是『magical』),
grep -C number pattern files :匹配的上下文分別顯示[number]行,
grep pattern1 | pattern2 files :顯示匹配 pattern1 或 pattern2 的行,
grep pattern1 files | grep pattern2 :顯示既匹配 pattern1 又匹配 pattern2 的行。
這里還有些用於搜索的特殊符號:
\< 和 \> 分別標注單詞的開始與結尾。
例如:
grep man * 會匹配 『Batman』、『manic』、『man』等,
grep '\
'^':指匹配的字元串在行首,
'$':指匹配的字元串在行尾,
如果您不習慣命令行參數,可以試試圖形界面的『grep』,如 reXgrep 。這個軟體提供 AND、OR、NOT 等語法,還有漂亮的按鈕 :-) 。如果您只是需要更清楚的輸出,不妨試試 fungrep 。