正则表达式、编辑器(vi、sed、awk)

1)打印命令:p

2)删除命令:d

3)替换命令:s

1)awk 基本用途

2)匹配打印

3)判断打印

4)数组

 

 

1. vi

vi 是 Linux 中的标准文本编辑器。所有的 unix 和类 unix 都会提供 vi 编辑器。在 linux 中还可以使用 vim(vi improved)。

vi 提供两种模式:

命令模式

用于浏览、删除、剪贴、查找等。

可以用各种命令进入插入模式。

插入模式

用于键入内容。

用 <ESC> 退出插入模式后回到命令模式。

vi 将命令模式和插入模式区分开来,这经常被认为是 vi 的一个大问题,但往往这也被认为是 vi 的优势所在。理解其中的区别是掌握 vi 的关键。

vi 启动时处于命令模式。在这种模式下,我们可以在文件中到处移动,改变文本的某个特定区域、剪切、复制和粘贴文本。

插入模式是指用户可以真正在文件中输入内容。

进入 vi 的命令

vi <filename>:打开或新建文件,并将光标置于第一行首。

vi +n <filename>:打开文件,并将光标置于第 n 行首。

vi + <filename>:打开文件,并将光标置于最后一行首。

vi +/pattern <filename>:打开文件,并将光标置于第一个与 pattern 匹配的串处。

vi -r <filename>:在上次正用 vi 编辑时发生系统崩溃,恢复 filename。

移动操作

移动操作命令繁多,熟练使用以下几个就够应付大部分情况。

[PgDn]:向下翻一页。

[PgUp]:向上翻一页。

gg:回到首行。

G:到尾行。

nG:到第 n 行。

$:到行尾。

^:到行首。

fx:向右到第一个字符 x 处,x 为任意字符。

Fx:向左到第一个字符 x 处。

删除

x/<del>:删除一个字符。

nx:删除下 n 个字符。

dd:删除当前行。

dw:删至词尾(并不是删掉该词,因为光标可能不在单词第一个字符)。

ndw:删除后 n 个词(分割符并不是默认的空格)。

d$:删除至行尾。

ndd:删除下 n 行。

复制粘贴

yy:将光标所在行进行复制。

nyy:将光标下 n 行进行复制。

yw:将光标所在词进行复制(可能不是整个词,视光标位置定)。

y$:将光标所在位置至行尾的部分进行复制。

p:贴在光标所在行的下一行。

P:贴在光标所在行的上一行。

从命令模式进入插入模式

i:光标在当前位置进入插入模式。

I:光标跳到行首并进入插入模式。

a: 光标后退一个并进入插入模式。

A:光变推到行尾并进入插入模式。

o:在光标所在行下新起一行并进入插入模式。

O:在光标所在行上新起一行并进入插入模式。

s:删除光标所在字符并进入插入模式。

S:删除光标所在行并进入插入模式。

取消操作

u:取消上一个更改。

U:取消一行内的所有更改。

:e!:放弃所有更改,重新编辑(:e! 代表先按:进入命令输入行再按 e 和 !)

查找文本

/string:向下查找 string。

?string:向上超找 string。

n:继续查找下一个。

命令模式下的输入选项

:r [filepath]:把 filepath 文件的内容插入到光标处。

:r! [command]:把 command 命令的结果插入到光标处。

:! [command]:退出 vi 编辑器执行 command 命令,然后返回 vi 编辑器。

退出、保存

:w:保存当前文件。

:q:如果上次保存后没有修改,退出文件。

:wq:保存退出。

:q!:放弃保存退出。

 

2. 正则表达式

一个正式表达式是一个字符串。字符串里的字符被称为元字符,它们可能表示了比它们字面上看起来的意思更丰富的含义。例如,一个引用符号可能表示引用一个人演讲中的话,或者表示下面将要讲到的引申表示的意思。正则表达式是一个字符或和元字符组合成的字符集,它们匹配(或指定)一个模式。

正则表达是的主要作用是用来文本搜索和字串操作。一个正则表达式匹配一个字符或是一串字符。

一个正则表达式包含下面一个或多个项:

一个字符集:这里的字符集里的字符表示的就是它们字面上的意思。正则表达式最简单的情况就是仅仅由字符集组成,而没有其他的元字符。

锚:一个锚指明了正则表达式在一行文本中要匹配的位置,例如 ^ 和 $ 就是锚。

修饰符:它们用于展开或缩小(即是修改了)正则表达式匹配文本行的范围。修饰符包括了星号。括号和反斜杠符号。

*(星号)

*:星号表示匹配前一个字符的任意多次(包括零次)。

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/zysxwd.html