关于grep的应用,刚开始接触觉得很简单,抓取一些简单的关键字等等,但是联系到正则表达式,就要难了,看着那一堆符号,猛一看,着实困难,但面对困难,我们要沉下心来,一点一点的分析,你会发现,其实也没想象的那么难。
grep作为一种文本查找工具,十分的好用,有egrep,fgrep,grep使用技巧对我们今后学习是一种十分有用的技能。
grep的那一堆应用字符我简单的说一下吧:
grep -E=egrep
-v 取反
-o 只显示匹配到的串本身
-i 忽略大小写
-r 递归搜索文件
-A # after 取后两行
-B # before 去前两行
-C # 去前后各两行
下面就是一些正则表达式用到的符号了:
^ PATTERN 行首锚定符
PATTERN $ 行尾锚定符
\< PATTERN 词首锚定符
PATTERN \> 词尾锚定符
. 匹配任意单个字符
* 匹配此前的字符0到任意次
.* 匹配任意长度的任意字符, 贪婪模式;尽可能长的匹配符合 模式的字符串
? 匹配此前的字符0次或1次
x\{m,n\} 匹配此前的字符至少m次,至多n次 x表示字符
\(\)
[] 匹配指定范围内的任意单个字符
[^] 匹配指定范围外的任意单个字符
[:space:]
这些符号看似简单,其实用起来需要很细心,下面举几个例子:
练习:查找如下字符串中形如xxx.xxx.xxx.xxx的字符串,其中x必须是数字
abc.111.222.333
12a.333.444.567
11.222.333.444
111.2.333.333
444.444.222.111
如果用grep来实现,命令就略显复杂了:
grep "[0-9]\{3\}\.[0-9]\{3\}\.[0-9]\{3\}\.[0-9]\{3\}" digit.txt
末行-->编辑
ESC ESC
1、保存退出
:wq
:wqall
ZZ
2、不保存退出:
:q
:q!
:qall!
下面是一些vim编辑器的操作技巧:
光标移动:
h 左移
l 右移
j 下移
k 上移
w :跳到下一个单词的词首 e <--> b
() 跳句子
{} 跳段落
0:绝对行首 <---> $:绝对行尾
^: 行首的第一个非空白字符
行间跳转:
G 文件最后一行
#G numberG 跳到指定行
:#
如何翻屏:
Ctrl+f 一次向文件尾部翻一屏
Ctrl+b ... 首部
Ctrl+d ... 尾部翻半屏
Ctrl+u ... 首部翻半屏
c:修改
cw,c$
C = c$
cc
ncc 删除n行
删除字符:
x
nx
X
删除单词:
d
nd
替换:
r 大小写替换
R 进入到替换模式
5rA
撤销:
u:undo 撤销最近一次的操作
nu:.....最近n次.....
Ctrl+r:撤销刚才的撤销
重做:
. :redo,重复执行上一条命令
复制:
y: yank
y$ 当前光标到行尾
yy 当前光标所在行
nyy
p 粘贴 当前光标所在行的下方(后面,如果复制的不是一整行)粘贴
P ... 上方(前面)
移动:
d
p
可视化模式:
v:按字符
V:按行
查找:
/keyword
?keyword
n/N
替换:substitude
:ADDR1:ADDR2S/from/to/flags
flags:
i: ignore-case
g: global
m,n
1,$
.,$
.,+num
1,$-1
% 全文
s///
s#/etc##
:next
:last
:first
:prev
分割窗口:
Ctrl+w,s 水平分割
Ctrl+w,v 垂直分割
Ctrl+w,方向箭头,切换界面
Ctrl+w,t 最上方
Ctrl+w,b 最下方
l 左
r 右
分割显示多个文件:
-o : 水平分割
-O : 垂直分割
设定vim的工作属性:
显示行号:
:set nu
:set nonu
自动缩进:
:set autoindent
:set noai
语法高亮:
syntax on|off
搜索高亮:
:set hlserrch
:PATTERN
好多快捷键,一下肯定记不住,不过要多操作,多动手,慢慢记,肯定能玩转vim的。
转载于:https://blog.51cto.com/4394407/774299