Linux c vim跳到指定行,grep与vim工具基本命令详解
本文记录些平常在课上做的笔记,有些不容易理解的地方加入了个人的一些理解,希望可以帮到同样陷入迷茫的你们。
grep:文本过滤 工具 用于取出文本中的行
例如grep root /etc/passwd 搜索文件中包含root的行,打印出整行。
grep “$user” /etc/passwd 双引号可以识别其中变量
grep ‘$user’ /etc/passwd 单引号不能识别变量
grep `whoami` /etc/passwd 在文件中寻找执行过whoani命令后的字段,打印出来
centos6 需要自己定义别名–color=auto
-v: 显示不被pattern匹配到的行 取反
-i: 忽略字符大小写
-n:显示匹配的行号
-c: 统计匹配的行数 只显示行数,不打印行
-o: 仅显示匹配到的字符串 例如搜索root 就只显示root
-q: 静默模式,不输出任何信息
-A #: after, 后#行 包含root的后几行也打印出来 结果保存在echo $? 0为找到
-B #: before, 前#行
-C #:context, 前后各#行
-e:实现多个选项间的逻辑or关系
grep –e ‘cat ’ -e ‘dog’ file 表示cat或dog
-w:匹配整个单词
-f :后面跟一个文件,文件必须为搜索条件
-E:使用ERE·
-F:相当于fgrep,不支持正则表达式
REGEXP正则表达式
由一类特殊字符及文本字符所编写的模式,其中有些字符(元字符)不表示字符字面意义,而表示控制或通配的功能
基本正则表达式 : BRE
扩展正则表达式:ERE
grep -E, egrep 表示使用扩展正则表达式
PCRE
元字符分类:字符匹配、匹配次数、位置锚定、分组
匹配字符:
. 匹配任意单个字符
[] 匹配指定范围内的任意单个字符
[^] 匹配指定范围外的任意单个字符
[:alnum:] 字母和数字
[:alpha:] 代表任何英文大小写字符,亦即 A-Z, a-z
[:lower:] 小写字母 [:upper:] 大写字母
[:blank:] 空白字符(空格和制表符)
[:space:] 水平和垂直的空白字符(比[:blank:]包含的范围广)
[:cntrl:] 不可打印的控制字符(退格、删除、警铃…)
[:digit:] 十进制数字 [:xdigit:]十六进制数字
[:graph:] 可打印的非空白字符
[:print:] 可打印字符
[:punct:] 标点符号
匹配次数:用在要指定次数的字符后面,用于指定前面的字符要出现的次数
* 匹配前面的字符任意次,包括0次
贪婪模式:尽可能长的匹配 默认
.* 任意长度的任意字符
. 任意单一字符
[ ] [ ]内任意单一字符
[^] 除[ ]内任意单一字符
*前面字符重复不确定次数
\+ \+前面字符重复一次以上不确定次数
\ 转义符
\? 匹配其前面的字符0或1次 \有没有都行
\+ 匹配其前面的字符至少1次
\{n\} 匹配前面的字符n次 精确字数
\{m,n\} 匹配前面的字符至少m次,至多n次
\{,n\} 匹配前面的字符至多n次
\{n,\} 匹配前面的字符至少n次
位置锚定:定位出现的位置
^ 行首锚定,用于模式的最左侧 grep “^bash” /etc/passwd 表示行首
$ 行尾锚定,用于模式的最右侧 grep “bash$” /etc/passwd 表示行尾
^PATTERN$ 用于模式匹配整行
^$ 空行
^[[:space:]]*$ 空白行
\< 或 \b 词首锚定,用于单词模式的左侧
\> 或 \b 词尾锚定;用于单词模式的右侧
\b 单词边界表示词首词尾都行
\ 匹配整个单词
分组:
\(wang\) 将一个或多个字符捆绑在一起,表示整体的wang作一个整体进行处理,如:\(root\)\+
分组括号中的模式匹配到的内容会被正则表达式引擎记录于内部的变量中,这些变量的命名方式为: \1, \2, \3, …
\1 表示从左侧起第一个左括号以及与之匹配右括号之间的模式所匹配到的字符
示例: \(string1\+\(string2\)*\)
\1 :string1\+\(string2\)*
\2 :string2
后向引用:引用前面的分组括号中的模式所匹配字符,而非模式本身
或者:\1
示例:a\|b: a或b C\|cat: C或cat \(C\|c\)at:Cat或cat 好好理解
\ . 表示点本身 转义
* 表示前面字符出现任意次数,一般要加双引号
.* 表示任意长度任意字符串
[.] 表示点本身
\1 表示模式结果而不是模式本身
^\(a\|b\) 分组a或b
\+表示加的意思
vim 文本编辑器
vim [OPTION]… FILE…
+#: 打开文件后,让光标处于第#行的行首,+默认行尾
+/PATTERN:打开文件后,直接让光标处于第一个被PATTERN匹配到的行的行首
ex file 或 vim –e 直接进入ex模式
如果该文件存在,文件被打开并显示内容
如果该文件不存在,当编辑后第一次存盘时创建它
三种主要模式
命令(normal)模式:默认 可以剪切粘贴文本
插入(insert)或编辑模式:可以修改文本
扩展命令模式(extended command)模式:保存修改或退出
可视化编辑模式visual :
Esc键: 退出当前模式,总是回到命令模式
命令模式 –> 插入模式 都可切换模式
i: insert, 在光标所在处输入
I: 在当前光标所在行的行首输入
a: append, 在光标所在处后面输入
A: 在当前光标所在行的行尾输入
o: 在当前光标所在行的下方打开一个新行
O: 在当前光标所在行的上方打开一个新行
:q 退出扩展命令模式: 按:进入
:q! 强制退出,丢弃做出的修改
:wq 保存退出
:w 写(存)磁盘文件
Linux c vim跳到指定行,grep与vim工具基本命令详解相关推荐
- Linux命令 查看文件中指定行号的内容
前言 有一个很大很大的文件,比如10G. 我想看看10000行到20000行之间的内容 我想看看前100行的内容 我想看看最后100行的内容 - 办法 Linux使用命令查看文件指定行号的内容,有下面 ...
- vi中如何跳到指定行
gg 跳到 行首 G 跳到行尾 行号gg 跳到指定行
- 【linux】Valgrind工具集详解(八):Memcheck命令行参数详解
[linux]Valgrind工具集详解(五):命令行详解中不够全,在此专门针对Memcheck工具中的命令行参数做一次详细的解释. Memcheck命令行选项 –leak-check=<no| ...
- Linux常用基本命令详解(一)
Linux常用基本命令详解(一) Linux常用基本命令详解(二)-------磁盘分区和磁盘管理类命令 Linux常用基本命令详解(三) 1.帮助命令 1.1.man命令 man[命令或配置文件] ...
- Linux进程管理工具 Supervisor详解
介绍 Supervisor安装与配置(linux/unix进程管理工具) Supervisor(http://supervisord.org)是用Python开发的一个client/server服务, ...
- 【转】Linux命令工具 top详解
Linux命令工具 top详解 top命令是Linux下常用的性能分析工具,能够实时显示系统中各个进程的资源占用状况,类似于Windows的任务管理器.top是一个动态显示过程,即可以通过用户按键来不 ...
- linux中top工具,Linux命令工具 top详解
Linux命令工具 top详解 top命令是Linux下常用的性能分析工具,能够实时显示系统中各个进程的资源占用状况,类似于Windows的任务管理器.top是一个动态显示过程,即可以通过用户按键来不 ...
- Linux常用基本命令详解(二)-------磁盘分区和磁盘管理类命令
Linux常用基本命令详解(一) Linux常用基本命令详解(二)-------磁盘分区和磁盘管理类命令 Linux常用基本命令详解(三) 1.磁盘分区 磁盘分区(系统分区)是使用分区编辑器(part ...
- Linux系统与网络、磁盘参数和日志监控等命令详解二
创作人QQ:851301776,邮箱:lfr890207@163.com, 欢迎大家一起技术交流,本博客主要是自己学习的心得体会,只为每天进步一点点! 个人座右铭: 1.没有横空出世,只要厚积一定发. ...
最新文章
- java moment 日期转换_关于日期:如何使用Java 8 DateTime API转换修改后的儒略日数字...
- 【Arduino】HX711驱动程序
- dw超链接标签_小花园DW学习笔记
- Gradle初探(一):创建一个Gradle项目
- php memcached get,PHP Memcached操作类
- Kenai.com 将与 java.net 合并
- Python自动化运维之高级函数
- 使用arttemplate js模板引擎,直接用模板渲染,减少字符串拼接。
- 阿里云郑晓:浅谈GPU虚拟化技术(第一章)
- C语言编程>第十六周 ① 给定程序的功能是求1/4的圆周长。函数通过形参得到圆的直径,函数返回1/4的圆周长(圆周长公式为:L=Πd,在程序中定义的变量名要与公式的变量相同)。
- [FOI2020WC模拟]看上去很简单
- 大于/小于/等于 的缩写
- 聚焦存储即平台,浪潮存储迎来发展新机遇
- spring2.5.6升级到4.3.7常见问题
- js鼠标移动让字体旋转360度
- java 导出csv文件通过web下载
- chrome绿色版浏览器
- STM32 GPIOx_CRL/GPIOx_CRH 寄存器的设置的简化描述
- jQuery中$(function(){})与(function($){})(jQuery)、$(document).ready(function(){})等的区别详细讲解
- 如何根据选股条件选择基本面量化股票池?
热门文章
- 【博客话题】技术人,你肿么了
- 创建多级目录函数MakeSureDirectoryPathExists()所需头文件
- 常见的复杂网络模型都有哪些?
- kafka-0.10.2.1:Producer生产时无法自动创建Topic
- Nginx之负载均衡
- 简述configure,pkg-config,pkg_config_path三者的关系
- Linux arm9 设置中断向量表,STM32学习笔记之中断向量表,MDK程序启动分析
- python获取机器唯一标识_python中uuid来生成机器唯一标识
- 命令行避免输入错误文件名_GitHub 60000+ Star 登顶,命令行的艺术
- STM32’s I2C 硬件BUG引发的血案