sed:流编辑器
- sed基本用法:Stream EDitor,行编辑器,文本编辑器:对文件中的内容一行一行读取并处理输出。
- sed模式空间:是一段内存空间(将文本读取到内存中进行编辑,默认不编辑文件本身)。
- 使用:sed [options] ‘AddressCommand’ file…
- options:
- -n:静默模式,不显示模式空间中的内容。
- -i:直接修改原文件。
- -e script -e script:可以同时执行多个脚本。
- -f :sed -f scripts file。
- -r:表示使用扩展正则表达式。
- Address:
- StartLine,EndLine比如:1,100:1到100行的位置。
- /RegExp/:比如 /^root/ :以root开头的行。
- /Pattern1/,/Pattern2/:第一次被pattern1匹配到的行开始到第一次被pattern2匹配到的行结束。
- 只给一个数值LineNumber:指定的行
- $:最后一行。
- $-1:倒数第二行。
- StartLine,+n:从startline开始,向后n行(不包括startLine这一行)。
- Command:
- d:删除符合条件的行。
- p:显示符合条件的行。
- a\string:在指定的行后面追加新行,内容为string。
- i\string:在指定的行前面添加新行,内容为string。
- rFILE:将指定文件的内容添加至指定的位置并显示出来。
- wFILE:将指定范围内的内容保存至文件FILE中。
- s/pattern/string/:查找并替换。每行中,能够被pattern匹配到的字符串替换为string。默认只替换每行第一次匹配的字符串。亦可以添加修饰符,如下:
- g:全局替换
- i:查找时忽略大小写
- s///:s###,s@@@
- &:引用模式匹配到的字符串,后向引用亦可以用\1,模式用()括起来。
- options:
vim编辑器
-
vi:Visual Interface,可视化接口。
-
vim:vi iMproved。全屏编辑器,模式化编辑器。
- 打开文件:
- vim file:直接打开。
- vim +n file:打开文件,光标处在第n行。
- vim + file:打开文件,光标处在最后一行。
- vim +\pattern file:打开文件,光标定位在第一次被模式匹配到的行首。
- 默认处于编辑模式。
- 关闭文件:末行模式关闭:
- q:退出。
- wq:保存退出。
- x:wq的简写。
- q!:不保存退出。
- w:保存。
- w!:强行保存。
- 编辑模式下退出:
- ZZ,保存退出。
- 打开文件:
-
vim模式:
- 编辑模式(命令模式):
- 输入模式:
- 末行模式:
- 模式转换:
- 编辑模式- ->输入模式:
- i:insert,在当前光标所在字符的前面,转为输入模式。
- a:append,当前光标所在字符的后面,转为输入模式。
- o:在当前光标所在行的下方,新建一行并转入输入模式。
- I:在当前光标所在行的行首,转入输入模式。
- A:在当前光标所在行的行尾。
- O:在当前光标所在行的上方。
- 输入模式- - >编辑模式:
- 按esc键。
- 编辑模式- ->末行模式:
- : 键。
- 末行模式- ->编辑模式:
- 按esc键。
- 编辑模式- ->输入模式:
-
移动光标:
- 逐字符移动:
- h:左。
- l:右。
- j:下。
- k:上。
- num h/l/j/k:例如5h:向左移动5个字符。
- w:移动到下一个单词的词首。
- e:移动到当前单词词尾或下一个单词词尾。
- b:移动到当前或前一个单词的词首。
- num w:移动num个单词。
- 0:行首,绝对行首。
- ^:行首的第一个非空白字符。
- $:绝对行尾。
- ( ):左右括号,句子间跳转。
- { }:左右花括号,段落间跳转。
- 行间跳转:
- #G:跳转至第#行上。
- G:最后一行。
- 末行模式下:
- 行号–》回车。
- 逐字符移动:
-
翻屏:
- ctrl + f:向下翻一屏。
- ctrl+b:向前翻一屏。
- ctrl+d:向下翻半屏。
- ctrl+u:向上翻半屏。
-
删除单个字符:
- x:删除光标所在处单个字符。
- #x:删除光标所在处的共#个字符。
-
删除命令:d
- d命令跟跳转命令组合使用。
- #d跳转符:#dw,#de,#db。
- dd:删一行。
- #dd:删#行,包括当前光标所在行。
- 末行模式:
- start,end d例如:1,8d:删除1至8行==.,+3==:删除当前行,三行。
- .:当前行。
- $:最后一行。
- +#:向下的#行。
- -#:向上的#行。
- c:同d命令,先删除内容,再转换为输入模式。
-
复制命令:y
- 用法同d。
-
粘贴命令:p
- -P:如果删除的或复制的为整行,则粘贴至光标所在行的上方,如果复制或删除的行为非整行,则粘贴至光标所在字符前方。
- p:如果删除的或复制的为整行,则粘贴至光标所在行的下方,如果复制或删除的行为非整行,则粘贴至光标所在字符后方。
-
替换:
- r:替换单个字符。
- R:替换模式。
-
撤销编辑操作:
- u:undo,撤销前一次操作,可以连续使用。
- 一般最多撤销50次。
- # u:直接撤销#次操作。
- 撤销最近一次的撤销操作。
- ctrl+r。
-
** 重复前一次操作**
- .
-
可视化模式:
- v:可选中,按字符选取。
- V:按矩形块选取。
-
查找
- /pattern:从头找。
- ?pattern:从尾部找。
- n,N:上下
-
查找并替换:
- 在末行模式下。
- 跟sed一样。