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:]]表示匹配字母或者数字字符。后面加*,是因为要匹配多个。*表示匹配前面的字符任意次。


猜你喜欢

转载自blog.csdn.net/lvxiaojiahuo/article/details/79559029