Linux学习笔记----day3(3.14)-----vi的操作,grep命令和正则表达式的使用

一,vi的常用命令

0: 移动到该行首

$:    移动到该行末

G:    移动到文件的最后行

nG:   移动到文件第n行

dd:    删除光标所在的行

ndd:   删除包括光标在内所在行的n行文本

u:    恢复刚才被修改过的文本


文件的内容查找

/word    表示从上而下在文件中查找字符串“word”

?word    表示从下而上在文件中查找字符串“word”

文件的修改

栗子:

将50到100行之间的old改为new,并且一个个挑选是否需要修改

:50,100s/old/new/gc            加上c命令,将对每个替换动作提示用户确认

复制 51 到 60 行这十行的内容,粘贴到最后一行之后

51,60   co $

选中所有空行,然后删除它们

:g/^\s*$/d

:g    表示在全文档范围内

^     代表行的开始

\s*   代表空白字符

$     代表行的结束

d     表示删除


二,grep命令和正则表达式的使用


-c    统计文件或者文本中包含匹配字符串的行数     grep -c  "file"  file.txt

-n    输出包含匹配字符串的行数                 grep -n  "file"  file.txt


grep和正则表达式的一些实用案例

匹配含有“408” 这个字符串的行   

grep  -n  "\<408\>"  file.txt     

解释 :\<408\>这里因为是字符串,所以加上\<\>来确定词首和词尾的锚定。

查找含有代码为1001或1002的行

grep  -n  100[12]  file.txt

显示行首不是4或5的行

grep  -n ^[^45]  file.txt

查找所有行中,包含以K为开头,以D结尾的字符串的行

grep  -n  '\<K[[:alnum:]]*D\> '  file.txt

grep  -n  '\<K[a-zA-Z0-9]*D\>'  file.txt

解释:[[:alnum:]]表示匹配字母或者数字字符。后面加*,是因为要匹配多个。*表示匹配前面的字符任意次。


  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值