首页 > 代码库 > grep 和vim用法
grep 和vim用法
grep :文本过滤( 模式:pattern) 工具
包括:grep, egrep, fgrep (不 支持正则表达式 搜索)
用法格式: grep [OPTIONS] PATTERN [FILE…]
模式:由正则表达式字符及文本字符所编写的过滤条件
各种选项: –color=auto : 显示匹配的文本着色,centos7已经自动匹配红色
-b : 显示不被模式匹配的行
-i :忽略字符大小写 -n : 显示匹配的行号 -v : 统计匹配到的行数
-o :仅显示匹配到的字串 -q :静默模式,不输出任何信息
-A # -B # -C # : 显示模式匹配到的前后行数,after、before、context前后各#行
-e : 实现多个选项间的逻辑or关系 grep –e ‘cat ’ -e ‘dog’ file
-E : 扩展正则表达式 -w : 整行匹配整个单词
-F :fgrep,不支持正则表达式
grep使用通配符,有些符号需要转义,扩展正则表达式则不需要,两者其他功能一样
扩展正则表达式:egrep 支持元字符、通配符等,和文件名通配稍微有点区别:使用egrep,转义符\不需要
. 匹配任意单个字符 [] 匹配指定范围内的任意单个字符
* 匹配 前面的字符任意次,包括0次 贪婪模式:尽可能长的匹配
\? 匹配 其前面的字符0 或1次 \+ 匹配 其前面的字符至少1次
\{m,n\} 匹配 前面的字符至少m 次,至多n次
位置锚定:
^$ : ^行首锚定,$行尾锚定。合在一起就是空行的意思 ^[[:space:]]*$ 空白行
\b 词首锚定,用于单词模式的左侧 ; 词尾锚定;用于单词模式的右侧
\<PATTERN\> 匹配整个单词
分组后向引用有点难理解:分组括号中的模式匹配到的内容会被正则表达式引擎记录于内部的变量中,这些变量的命名方式为: \1, \2, \3, …
exam: egrep (string1)(string2)\1\2 \1表示引用第一个字符串,\2表示引用第二个字符串
如果使用grep ,括号需要转义\(\);
或者的逻辑关系: a|b: a或b C|cat: C 或cat (C|c)at:Cat 或cat
vim编辑器基本认识:
vim [OPTION]… FILE… 如果该文件存在,文件被打开并显示内容
如果该文件不存在,当编辑后第一次存盘时创建它
参数使用了解即可,接触不到几个。
三种主要模式: 命令模式、输入模式、末行模式 Esc键 退出当前模式,总是返回到命令模式
命令模式转换插入模式:
i : insert, 在光标所在处输入
a : append, 在光标所在处后面输入
o : 在当前光标所在行的下方打开一个新行
大写I,A,O,表示在光标行首输入、光标行尾输入、所在行上分打开新行
注意:插入模式和末行模式是不能直接转换,需要通过命令模式中转,
支持锁定和解锁,和锁定linux一样, 只是不显示而已,实际还能输入
:q 退出 :q! 强制退出,丢弃做出的修改
:wq 保存退出 :wq! 强制保存退出 建议使用这些退出方式,其他退出方式操作快,危险
在末行模式下:
r filename 读文件内容到当前文件中
w filename 将当前文件内容写入另一个文件
!command 执行命令
r!command 读入命令的输出
命令模式的光标跳转:
H :页首 M行 :页中间行 L: 页底
h: 左 左 l: 右 右 j: 下 下 k: 上 (习惯使用方向键也行) 还可以单词跳转:w、e、 b
^: 跳转至行首的第一个非空白字符 $: 跳转至行尾 0: 跳转至行首
G :最后一行 #G :跳转指定#行 gg: 第一行
Ctrl+f 向尾部翻一屏 Ctrl+b 向首部翻一屏
dd : 删除光标所在行 yy:复制光标所在行 p,P: 粘贴复制的整行,也可以粘贴删除的字符
~ : 大小写替换
还有查找替换功能:s/string/string2/g g: 全局替换 查找替换中的分隔符/ 可替换为其它字符
u 撤销最近的更改 按Ctrl – r 重做最后的“撤消”更改
这些就是些基本用法,vim功能很强大,还有很多强大的功能,太多了,我们先了解使用即可。
grep 和vim用法