Ⅰ 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 。