文本三剑客之grep加vim编辑器

好几周没写博客了,今天又时间就随便写了点。

linux文本处理三剑客:
grep:文本过滤工具  grep ,egrep,fgrep(用来打印各种行,patten模式)
它需要标准输入,CentOS6里也可以实现标红。alias gerp 是别名
 nmap -v -sp 172......0/24 |gerp -B1 "Host is up" 扫描ip地址
 grep 数字加字母加下划线都算单词的一部分。
 grep 支持正则表达式
 grep -w 过滤单词的 如: ls |grep -w "..."
 grep-o 只显示模式的字符串数字
 作用:文本搜索工具,根据用户指定的“模式”对目标文本逐行进行匹配检查;
打印匹配到的行。
模式:由正则表达式字符及文本字符所编写的过滤条件
grep root/etc/passwd
grep "$USER /etc/passwd
grep ‘$USER‘ /etc/passwd
grep `whoami` /etc/passwd
--color=auto: 对匹配到的文本着色显示
-v: 显示不被pattern匹配到的行
-i: 忽略字符大小写
-n:显示匹配的行号
-c: 统计匹配的行数
-o: 仅显示匹配到的字符串
-q: 静默模式,不输出任何信息
-A #: after, 后#行
-B #: before, 前#行
-C #:context, 前后各#行
-e:实现多个选项间的逻辑or关系
grep –e ‘cat ’ -e ‘dog’ file
-w:匹配整个单词
-E:使用ERE
-F:相当于fgrep,不支持正则表达式
     -f :包含关系
 正则表达式:
 处理文本内容中特定的字符串。

 PCRE(perl)语言非常处理文本
 元字符分类:字符匹配、匹配次数、位置锚定、分组
 字符匹配:
 1、. 匹配任意单一字符。如echo abbc |grep a..c    还有贪婪模式,如:ls |grep ...尽可能匹配长的字符串。
 ...表示一个字符,  ".\.."转义 :回归字符本身的含义。.放在[]以内就不需要转义了。
 2、[] 表示[]里的某个字符
 如:echo abcdef  |grep "a[xyz]c" :去除中阔号里的每个字符。
 匹配次数:出现的字符次数有几个
 如:echo abx |grep x* 空 x xx xxx ...
 *表示匹配前面字符重复的次数
 echo ab |grep "ax*b"
 .*:表示任意长度的任意字符串
 \? :表示前面的字符0次或1次
 如:echo abbccdd |grep "a[a-z]\?c"
 \+:表示一个以上,表示某个数字以上
 如:echo "1a"|grep "[a-z]\+"
2、位置锚定:定位出现的位置
^ 行首锚定
grep "\broot\b" /etc/passwd \b:表示单词的词尾
$ 行位锚定,用于模式的右侧
^PATTERN$ :用于模式匹配整行
     ^$ 空行
     ^[[:space:]]*$ 空白行
\< 或 \b 词尾锚定,用于单词模式的左侧
\> 或 \b 词尾锚定; 用于单词模式的右侧
\<PATTERN\> 匹配整个单词   

分组:
如: echo lilili| grep "\(li\)\{3\}"
 echo rootxxrbbt |grep ‘\(r..t\).*{r..t\}‘
 分组:\(\)将一个或多个字符捆绑在一起,当作一个整体进行处理,如:
 \(root\)\+
 分组括号中的模式匹配到的内容会被正则表达式引擎记录于内部的变量中,这些
 变量的命名方式为:\1,\2,\3,...
 \1 表示从左侧起第一个左括号以及与之匹配右括号之间的模式所匹配到的字符。
 如:\(string1\+(string2\)*\)
  \1 : string1\+(string2\0*
  \2 : string2
 后向引用 : 引用前面的分组括号中的模式所匹配字符,而非模式本身
或者:\|
如: a\|b: a或b C\|cat: C或cat  \(C\|c)at: Cat或cat

 判断os版本号:
CentOS6:grep -o " [0-9]\+."  /etc/redhat-release |grep -o "[0-9]\+"
CentOS7:grep -o "[0-9]\+"  /etc/redhat-release  |head -n1

egrep及扩展的正则表达式
egrep = grep -E
egrep [OPTIONS] PATTERN [FILE...]
扩展正则表达式的元字符:
字符匹配:
. 任意单个字符
[] 指定范围的字符
[^] 不在指定范围的字符
扩展正则表达式
?次数匹配:
*:匹配前面字符任意次
?: 0或1次
+:1次或多次
{m}:匹配m次
{m,n}:至少m,至多n次

位置锚定:
^ :行首
$ :行尾
\<, \b :语首
\>, \b :语尾
?分组:
()
后向引用:\1, \2, ...
或者:
a|b: a或b
C|cat: C或cat
(C|c)at:Cat或cat
Vi:Visual Interface ,文本编辑器
文本:ASCII,Unicode
文本编辑种类:
    行编辑器:sed
    全屏编辑器:nano,vi
    vim - Vi Improved
其他编辑器:
      gedit:一个简单的图形编辑器
      gvim:一个Vim编辑器的图形版本
打开文件
?# vim  [OPTION]... FILE...
+#: 打开文件后,让光标处于第#行的行首,+默认行尾
+/ PATTERN :打开文件后,直接让光标处于第一个被 PATTERN 匹配到的行的
行首
–b file 二进制方式打开文件
–d file1 file2… 比较多个文件
-m file 只读打开文件
ex file 或 vim –e 直接进入ex模式
如果该文件存在,文件被打开并显示内容
如果该文件不存在,当编辑后第一次存盘时创建它
 vim:一个模式编辑器
击键行为是依赖于 vim的 的“模式”
三种主要模式:
命令(Normal)模式:默认模式,移动光标,剪切/粘贴文本
插入(Insert)或编辑模式: 修改文本
扩展命令(extended command )模式: 保存,退出等
Esc键 退出当前模式
Esc键 Esc键 总是返回到命令模式

模式转换
插入模式 --------> 命令模式
ESC
命令模式 --------> 扩展命令模式
:
扩展命令模式 --------> 命令模式
ESC,enter

 命令模式:查看功能 H,J,K,L,
 用i键编辑
 I编辑
 esc退出
 都可以编辑:a,A o,O
 q!强行退出
 r :可以把新文件内容读过去

 命令界面按R切换至replace

关闭文件
?扩展模式:
:q  退出
:q!  强制退出,丢弃做出的修改
:wq  保存退出
:x  保存退出
命令模式
ZZ: 保存退出
ZQ:不保存退出

 扩展模式
按“:”进入Ex模式
创建一个命令提示符: 处于底部的屏幕左侧
命令:
w  写(存)磁盘文件
wq  写入并退出
x  写入并退出
q 退出
q!  不存盘退出,即使更改都将丢失
r filename  读文件内容到当前文件中
w filename 将当前文件内容写入另一个文件
!command 执行命令
r!command 读入命令的输出

命令模式光标跳转:
字符间跳转:
h:左 i:右 j:下   k:上
#COMMAND:跳转由#指定的个数的字符
单词间跳转:
w: 下一个单词的词首
e: 当前或下一个单词的词尾
b:当前或前一个单词的词首
#COMMAND:由#指定一次跳转的单词数
当前页跳转:
H:页首 M:页中间行 L:页底

命令模式光标跳转
?行首行尾跳转:
^: 跳转至行首的第一个非空白字符
0: 跳转至行首
$: 跳转至行尾
?行间移动:
#G、扩展模式:# :跳转至由#指定行
G:最后一行
1G, gg: 第一行
?句间移动:
):下一句  (:上一句
?段落间移动:
}:下一段  {:上一段

 命令模式翻屏操作
?Ctrl+f: 向文件尾部翻一屏
?Ctrl+b: 向文件首部翻一屏
?Ctrl+d: 向文件尾部翻半屏
?Ctrl+u:向文件首部翻半屏

 命令模式操作
?字符编辑:
x: 删除光标处的字符
#x: 删除光标处起始的#个字符
xp: 交换光标所在处的字符及其后面字符的位置
~:转换大小写
J:删除当前行后的换行符
?替换命令(r, replace)
r: 替换光标所在处的字符
R:切换成REPLACE模式

命令模式操作
?删除命令:
d: 删除命令,可结合光标跳转字符,实现范围删除
d$: 删除到行尾
d^:删除到非空行首
d0:删除到行首
dw:
de:
db:
#COMMAND
?dd: 删除光标所在的行
#dd:多行删除
?D:从当前光标位置一直删除到行尾,留空行,等同于d$

命令模式操作
?复制命令(y, yank):
y: 复制,行为相似于d命令
y$
y0
y^
ye
yw
yb
#COMMAND
yy:复制行
#yy: 复制多行
Y: 复制整行

命令模式操作
粘贴命令(p, paste):
p:缓冲区存的如果为整行,则粘贴当前光标所在行的下方;否则,则粘贴
至当前光标所在处的后面
P:缓冲区存的如果为整行,则粘贴当前光标所在行的上方;否则,则粘贴
至当前光标所在处的前面

命令模式操作
 改变命令(c, change)
c: 修改后切换成插入模式
命令模式 --> 插入模式
c$
c^
c0
cb
ce
cw
#COMMAND
cc:删除当前行并输入新内容,相当于S
#cc:
C:删除当前光标到行尾,并切换成插入模式

命令模式
100iwang [ESC] 粘贴“wang”100次
<start position><command><end position>
Command:
y 复制、d 删除、gU 变大写、gu 变小写
例如 0y$ 命令意味着:
0 → 先到行头
y → 从这里开始拷贝
$ → 拷贝到本行最后一个字符
ye 从当前位置拷贝到本单词的最后一个字符

扩展命令模式:地址定界
地址定界
:start_pos,end_pos
# 具体第#行,例如2表示第2行
#,# 从左侧#表示起始行,到右侧#表示结尾行
#,+# 从左侧#表示的起始行,加上右侧#表示的行数
:2,+3 表示2到5行
. 当前行
$ 最后一行
.,$-1 当前行到倒数第二行
% 全文, 相当于1,$

扩展命令模式:地址定界
/pat1/,/pat2/
从第一次被pat1模式匹配到的行开始,一直到第一次被pat2匹配到的行结
束
#,/pat/
/pat/,$
使用方式:后跟一个编辑命令
d
y
w file: 将范围内的行另存至指定文件中
r file:在指定位置插入指定文件中的所有内容

扩展命令模式:查找
查找
/PATTERN:从当前光标所在处向文件尾部查找
?PATTERN:从当前光标所在处向文件首部查找
n:与命令同方向
N:与命令反方向

扩展命令模式:查找并替换
s: 在扩展模式下完成查找替换操作
格式:s/要查找的内容/替换为的内容/修饰符
要查找的内容:可使用模式
替换为的内容:不能使用模式,但可以使用\1, \2, ...等后向引用符号;还可
以使用“&”引用前面查找时查找到的整个内容
修饰符:
i: 忽略大小写
g: 全局替换;默认情况下,每一行只替换第一次出现
gc:全局替换,每次替换前询问
?查找替换中的分隔符/可替换为其它字符,例如
[email protected]/[email protected]/[email protected]
s#/boot#/#i

命令模式:撤消更改
u撤销最近的更改
#u撤销之前多次更改
U 撤消光标落在这行后所有此行的更改
按Ctrl - r重做最后的“撤消”更改
. 重复前一个操作
n.重复前一个操作n次

vim的寄存器:
有26个命名寄存器和1个命名寄存器,常存放不同的剪切版内容,可以不同会话间
共享
寄存器名称a,b,...,z格式 :“寄存器  放在数字和命令之间
         如:3“tyy表示复制3行到t寄存器中
        “tp 表示将t寄存器内容粘贴
未指定,将使用无命名寄存器
有10个数字寄存器,用0,1,...,9表示,0存放最近复制内容,1存放最近删除内容。
当新的文本变更和删除时,1转存到2,2转存到3,以此类推。数字寄存器不能在不同会话间共享

编辑二进制文件
以二进制方式打开文件
vim –b binaryfile
扩展命令模式下,利用xxd命令转换为可读的十六进制
:%!xxd
编辑二进制文件
扩展命令模式下,利用xxd命令转换回二进制
:%!xxd –r
保存退出

可视化模式
 允许选择的文本块
v 面向字符
V 面向行
命令模式:
ctrl-v  面向块
 可视化键可用于与移动键结合使用:
shift+i键进入编辑模式
输入#
双击ESC键

w ) } 箭头等
 突出显示的文字可被删除,复制,变更,过滤,搜索,替换等

多文件模式
vim FILE1 FILE2 FILE3 ...
:next 下一个
:prev 前一个
:first 第一个
:last 最后一个
:wall 保存所有
:qall 退出所有
:wqall

使用多个“窗口”
 多文件分割
vim -o|-O FILE1 FILE2 ...
-o: 水平分割
-O: 垂直分割
在窗口间切换: Ctrl+w, Arrow
 单文件窗口分割:
Ctrl+w,s: split, 水平分割
Ctrl+w,v: vertical, 垂直分割
ctrl+w,q:取消相邻窗口
ctrl+w,o:取消全部窗口
:wqall 退出

定制vim的工作特性
?配置文件:永久有效
全局:/etc/vimrc
个人:~/.vimrc
?扩展模式:当前vim进程有效
?(1) 行号
显示:set number, 简写为set nu
取消显示:set nonumber, 简写为set nonu
?(2) 忽略字符的大小写
启用:set ic
不忽略:set noic
?(3) 自动缩进
启用:set ai
禁用:set noai

定制vim的工作特性
?(4) 智能缩进
启用:smartindent 简写 set si
禁用:set nosi
?(5) 高亮搜索
启用:set hlsearch
禁用:set nohlsearch
?(6) 语法高亮
启用:syntax on
禁用:syntax off
?(7) 显示Tab和换行符 ^I 和$显示
启用:set list
禁用:set nolist

定制vim的工作特性
?(8) 文件格式
启用windows格式:set fileformat=dos
启用unix格式:set fileformat=unix
简写: set ff=dos|unix
? (9) 设置文本宽度
启用: set textwidth=65 (vim only)
禁用: set wrapmargin=15
? (10) 设置光标所在行的标识线
启用:set cursorline,简写cul
禁用:set no cursorline
? (11) 复制保留格式
启用: set paste
禁用: set nopaste

了解更多
? Set 帮助
?:help option-list
?:set or :set all
? vi/vim内置帮助
:help
:help  topic
Use :q to exit help
vimtutor

原文地址:http://blog.51cto.com/13870640/2176033

时间: 2024-08-07 09:51:16

文本三剑客之grep加vim编辑器的相关文章

linux 文件管理和文本三剑客之一grep,以及正则的使用

1:文件权限 用户对文件的访问有三种:r(读),w(写),x.对于文件和目录有点区别. 文件: r:使用文本查看工具可以查看其文件内容. w:使用文本编辑工具可以编辑其文件内容. x:可向内核请求将此文件运行为进城执行. 目录: r:可以使用ls命令列出文件下子目录和文件的列表. w:可以在此目录中创建和删除文件. x:可使用'ls -l'命令列出目录及子目录的文件属性,可以使用cd切换工作目录为制定目录. 文件权限主要针对三类对象进行定义. owner:属主  , group:属组, othe

llinux文本三剑客之grep、egrep及相应的正则表达式和用法

Linux文本三剑客之grep族以及相应的正则表达式 Grep族是什么? Grep族是linux学习中搜索文本的重要工具,它基于使用正则表达式来快速简洁的搜索你想要查看的文本.是搜索文本的不二之选 什么时候及在哪里使用grep呢? 上面咱们说到了,grep是文本搜索工具,所以当我们要搜索文本,有搜索文本的需要时我们就可以是使用grep工具. 下面我们来谈谈如何使用grep族命令以及涉及到的正则表达式的内容 文本搜索工具:grep族:grep, egrep, fgrep Linux上文本处理三剑客

文本三剑客(grep、sed、awk)

文档:文本三剑客(grep.sed.awk).note链接:http://note.youdao.com/noteshare?id=d6b2cb636b40803cf543f3f0b44bed9f&sub=1D4DA6B89EC74E9597672AADF0CE3894 原文地址:https://blog.51cto.com/12928116/2407036

处理文本的工具sed,vim 编辑器的使用 &nbsp; Linux版

处理文本的工具sed Stream EDitor 行编辑器 sed一次处理一行的内容,处理时,将当前处理的行存储在临时缓冲区,称为"模式空间",接着用sed命令处理缓冲区中的内容,处理完成后,将缓冲区的内容送往屏幕,接着处理下一行不断重复,直到末尾. 一次处理一行 文件--->内存空间--->屏幕 模式空间 文件--->内存空间--->屏幕 | 保持空间 sed   -n:不输出模式空间内容的自动打印 -e:多点编辑 -f:/PATH/TO/SCRIPT_FIL

Linux文本三剑客之grep

grep: Global search REgular expression and Print out the line. 作用:文本搜索工具,根据用户指定的"模式"对目标文本逐行进行匹配检查:打印匹配到的行 模式:由正则表达式字符及文本字符所编写的过滤条件 REGEXP:由一类特殊字符及文本字符所编写的模式,其中有些字符不表示字符字面意义,而表示控制或通配的功能 分两类: 基本正则表达式:BRE 扩展正则表达式:ERE(grep -E, egrep) 正则表达式引擎 grep [O

linux文本处理三剑客之grep

  一.linux文本处理三剑客介绍 linux中文本三剑客包括grep(egrep,fgrep),sed,awk,三者基本的功能如下: 工具名称 功能 grep,egrep,fgrep 文本过滤工具(搜索工具) sed stream editor, 流编辑器:文本编辑工具 awk 文本报告生成器 二.grep工具详解 1.grep的介绍: grep (global search regular expression(RE) and print out the line,全面搜索正则表达式并把行

linux文本三剑客匹配网卡IP地址大PK(CentOS 7系统)

    运维工程师在做配置的过程中很多时候都需要去获取目标服务器网卡上的IP地址,那究竟用什么方式获取更便捷了,博主今天就带大家使用linux文本三剑客分别获取一下网卡的IP地址,最后我们再来对比一下. 实验环境: 系统:CentOS 7.2 网卡张数:双网卡 linux文本三剑客之grep 获取ifconfig输出中的IP地址 ifconfig | egrep -o "\<([1-9]|[1-9][0-9]|1[0-9][0-9]|2[0-1][0-9]|22[0-3])\>.(\

谢烟客---------Linux之文本处理三剑客之grep

Linux之文本处理三剑客介绍 awk 名称得自于它的创始人阿尔佛雷德·艾侯.彼得·温伯格和布莱恩·柯林汉姓氏的首个字母,它具备了一个完整的语言所应具有的几乎所有精美特性,AWK是一个解释器,三位创建者已将它正式定义为"样式扫描和处理语言".它允许您创建简短的程序,这些程序读取输入文件.为数据排序.处理数据.对输入执行计算以及生成报表,还有无数其他的功能.Linux使用的是Gnu版本的AWK,gawk grep 全称"Global search REgular express

文本处理三剑客之grep

文本处理三剑客之grep 正则表达式(regex) 文本处理工具 grep egrep 试验环境:CentOS 7.2 正则表达式 Linux的哲学之一"一切皆文件",学习Linux应得掌握其基本的文本处理工具,这些工具主要包括: 文件内容:less和cat 文件截取:head和tail 文件抽取:cut 关键字搜索:grep 正则表达式是计算机科学中的一个概念,又称作regex或RE, 正则表达式诞生于对神经网络研究的需要,随着技术发展,正则表达式已经广泛应用于各个领域,其主要应用对