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. 正则表达式
一个正式表达式是一个字符串。字符串里的字符被称为元字符,它们可能表示了比它们字面上看起来的意思更丰富的含义。例如,一个引用符号可能表示引用一个人演讲中的话,或者表示下面将要讲到的引申表示的意思。正则表达式是一个字符或和元字符组合成的字符集,它们匹配(或指定)一个模式。
正则表达是的主要作用是用来文本搜索和字串操作。一个正则表达式匹配一个字符或是一串字符。
一个正则表达式包含下面一个或多个项:
一个字符集:这里的字符集里的字符表示的就是它们字面上的意思。正则表达式最简单的情况就是仅仅由字符集组成,而没有其他的元字符。
锚:一个锚指明了正则表达式在一行文本中要匹配的位置,例如 ^ 和 $ 就是锚。
修饰符:它们用于展开或缩小(即是修改了)正则表达式匹配文本行的范围。修饰符包括了星号。括号和反斜杠符号。
*(星号)*:星号表示匹配前一个字符的任意多次(包括零次)。