处理文本的工具sed,vim 编辑器的使用   Linux版

处理文本的工具sed

Stream EDitor 行编辑器

sed一次处理一行的内容,处理时,将当前处理的行存储在临时缓冲区,称为“模式空间”,接着用sed命令处理缓冲区中的内容,处理完成后,将缓冲区的内容送往屏幕,接着处理下一行不断重复,直到末尾。

一次处理一行

文件--->内存空间--->屏幕

模式空间

文件--->内存空间--->屏幕

|

保持空间

sed  

-n:不输出模式空间内容的自动打印

-e:多点编辑

-f:/PATH/TO/SCRIPT_FILE:从指定文件中读取编辑文本

-r:支持使用扩展正则表达式

-i:原处编辑

-i.bak   直接使用容易删去文件,使用的时候在后面加.bak 留下一个备份

sed -i.bak ‘10d‘ f1

script:地址命令

地址定界:

(1)不给地址:对全文进行处理

(2)单地址:

#:指定的行

/pattern/:被此处模式所能够匹配到的每一行

(3)地址范围:

#,#

#,+#

/pat1/,/pat2/  sed -n ‘/^root/,/^s/p‘

#,/pat1/

(4)~:步进

1~2 奇数行

2~2 偶数行

sed -n ‘2p‘ f1

将第二行显示出来

编辑命令:

d:删除模式空间匹配的行

p:显示模式空间中的内容

a \text:在行后面追加文本:支持使用\n实现多行追加

i \text:在行前面插入文本:支持使用\n实行多行插入

c \text:替换行为单行或多行文本

w /path/to/somefile:保存模式匹配的行至指定文件

r /path/from/somefile:读出指定文件的文本至模式空间中匹配到的行后

=:为模式空间中的行打印行号

!:模式空间中匹配行取反处理

s///: 查找替换,支持使用其它分隔符,[email protected]@@,s###

替换标记:

g:行内全局替换

p:显示替换成功的行

w /PATH/TO/SOMEFILE:将替换成功的行保存至文件中

nl =cat -n 显示行号

sed ‘[email protected]^[^#]@#&@‘ /etc/fstab

echo /etc/sysconfig/ |sed -r ‘s#(/.*/)[^/]+?#\1#‘

sed ‘s#^.*\<##‘

sed -r ‘s#[^/]+/?##‘

sed工具

高级编辑命令:

h:把模式空间中的内容覆盖至保持空间中

H:把模式空间中的内容追加至保持空间中

g:从保持空间取出数据覆盖至模式空间

G:从保持空间取出内容追加至模式空间

x:把模式空间中的内容与保持空间中的内容进行互换

n:读取匹配到的行的下一行覆盖至模式空间

N:追加匹配到的行的下一行至模式空间

d:删除模式空间中的行

D:删除当前模式空间开端至\n的内容(不在传至输出),放弃之后的命令,但是对剩余模式空间重新执行sed

vim 编辑器

只在/etc/目录下的文件,用vim才显示格式高亮颜色。

+#:+数字:直接打开跳到数字行

+/PATTERN:  打开文件之后直接跳到关键词

+空格:打开直接跳最后一行

-d:同时打开多个文件,并能对比出文件之间的不同

-m:打开为只读方式,不能修改

-e:直接进入ex模式

vim三种主要模式

       命令模式(默认):主要功能是查看文件内容

       插入(编辑)模式:修改文本。

       扩展命令模式:保存,退出等。

hjkl 上下左右移动

插入(编辑)模式

i:在原本光标的地方修改

I:自动去到光标所在的行开头

a:跳到光标所在的位置的后一位置

A:直接跳到光标所在的行尾

o:在当前光标所在的行下方打开一个新行

O:在当前光标所在的行的上分打开一个新行

模式转换

插入模式 ---->命令模式

ESC

命令模式 ---->扩展模式

:

扩展模式 ---->命令模式

ESC

锁定和解锁:Ctrl+s,屏幕不显示,但是实际能够输入,解锁可以显示

Ctrl+q

关闭文件

扩展模式:

:q 退出

:q! 强制退出,丢弃做出的修改

:wq 保存退出

:x 保存退出

按“:”进入Ex模式

命令模式

ZZ:保存退出

ZQ:不保存退出

字符间跳转:

h: 左  l:右  j:下  k:上

单词间跳转:

w:下一个单词的词首

e:当前或下一单词的词尾

b:当前或前一个单词的词首

#COMMMAND:跳转由#指定的个数的字符

当前也跳转:

H:页首

M:页中间行

L:页底

行首行尾跳转:

^:跳转至行首的第一个非空白字符:

0:跳转至行首

$:跳转至行尾

行间动:

#G,扩展模式:#:跳转至由#指定行

G:最后一行

1G,gg:第一行

句间移动:

):下一句

(:上一句

段落间移动:

}:下一段

{:上一段

命令模式翻屏操作

Ctrl+f:向文件尾部翻一屏

Ctrl+b:向文件首部翻一屏

Ctrl+d:向文件尾部翻半屏

Ctrl+u:向文件首部翻半屏

字符编辑:

x:删除光标处的字符

#x:删除光标处其实的#个字符

xp:交换光标所在处的字符及后面字符的位置

~:转换大小写

替换命令:

r:替换光标所在处的字符

R:切换成REPLACE模式

删除命令:d

d:删除命令,可以结合光标跳转字符,实现范围删除

d$:删除到行尾

d^:删除到非空行首

d0:删除到行首

dd:删除到光标所在的行

#dd:多行删除

D:从当前光标位置一直删除到行尾,留空行,等同于d$

拷贝命令:y

y:复制,行为相似于d命令

y$:复制到行尾

y0:复制到行首

y^:复制到非空行首

yy:复制行

#yy:复制多行

y:复制整行

粘贴命令: p

p:粘贴当前光标所在后面

P:粘贴在当前光标所在的前面

改变命令:c

命令模式

100 i wang [ESC] 粘贴“wang”100次

y 复制,d删除,gU,变大写,gu变小写

地址定界:#:具体第#行,例如2表示第二行

#,#:从左侧#表示行起始,到右侧#表示行结尾

#,+#:从左侧#表示行起始,加上右边→_→#表示的行数

2,+3  表示2到5行

.:表示当前行

$:最后一行

.,$-1 当前行到倒数第二行

%:全文,想当于1,$

地址定界 扩展模式:

/at1/,/pat2/

从第一次被pat1模式匹配到的行开始,一直到第一次被pat2匹配到的行结束

#,/pat/

/pat/,$

撤销更改:u 

#u撤销之前多次更改    

重做按:Ctrl+r

重复前一个操作:.

n. 复制n次前一次的操作。

U撤销光标所在行的所有更改

vim的寄存器

"a yy

"a p

"b yy

有26个命名寄存器和1个无名寄存器,常存放在不同的剪贴板内容,可以不同回话间共享。

用a,b,...,z表示,用"寄存器表示,放在数字和命令之间

如:3"tyy表示复制3行到t寄存器中

"tp 表示将t寄存器内容粘贴

未指定,将使用无名寄存器

有10个数字寄存器,用0,1,...9表示,0存放最近复制内容,1存放最近删除内容。当新的文本变更和删除时,1转存到2,2存转到3,以此类推。数字寄存器不用在不同回话间共享。

编辑二进制文件

以二进制方式打开文件

vim -b binaryfiy

扩展命令模式下,利用xxd命令转换为可读的十六进制

:%!xxd

扩展命令模式下,利用xxd命令转换回二进制

:%!xxd

可视化模式

v面向字符

V面向行

ctrl -v 面向块

可视化键可用于与移动键结合使用:

w,),},箭头等

突出显示的文字可以被删除,复制,变更,过滤,搜索,替换等。

多文件模式

vim f1,f2,f3...

:next 下一个

:prev 前一个

:first 第一个

:last 最后一个

:wall 保存所有

:qall 退出所有

:wqall 保存退出所有

多文件分隔

vim -o | -O f1 f2

-o:水平分隔

-O:垂直分隔

在窗口间切换:Ctrl+w

可以通过Ctrl+w 可以切换都其他分割窗口

单文件窗口分隔:

水平分割:Ctrl+w,s

垂直分割:Ctrl+w,v

取消相邻的窗口:Ctrl+w,q

取消全部窗口:Ctrl+w,o

退出:wqall

vim 配置文件:

全局:/etc/vimrc

个人:~/.vimrc

扩展模式:当前vim进程有效

(1)行号

显示:set number,简写为:set nu

取消显示:set nonumber,简写:set nonu

(2)括号成对匹配

匹配:set showmatch,简写为set sm

取消:set nosm

(3)自动缩进

启用:set ai

禁用:set noai

(4)高亮搜索

启用:set hlsearch

禁用:set nohlsearch

(5)语法高亮

启用:syntax on

禁用:syntax off

(6)忽略字符的大小写

启用:set ic

不忽略:set noic

(7)文件格式

启用:fileformat=unix (Linux)

不忽略:fileformat=dos (windows)

(8)设置文本宽度

:set textwidth=65(vim only)宽度

:set wrapmargin=15

vim/vi 内置帮助

:help

:help topic

时间: 2024-10-02 04:24:54

处理文本的工具sed,vim 编辑器的使用   Linux版的相关文章

DAY8:文本处理工具sed和vim

8月8号,主要学习内容为: 一.文本处理工具sed 二.vim编辑器 一.文本处理工具sed 1)简介 sed是一种流编辑器,它一次处理一行内容.处理时,把 当前处理的行存储在临时缓冲区中,称为"模式空间"( pattern space),接着用sed命令处理缓冲区中的内容 ,处理完成后,把缓冲区的内容送往屏幕.接着处理下一 行,这样不断重复,直到文件末尾.文件内容并没有改变 ,除非你使用重定向存储输出.Sed主要用来自动编辑一 个或多个文件,简化对文件的反复操作,编写转换程序等. 用

linux下的文本处理工具---sed

文本处理工具sed 1.sed介绍 Sed是一种非交互式的流编辑器,通过多种转换修改流经过它的文本.但是,默认情况下,sed并不改变原文件本身,而只是对流经sed命令的文本进行修改,并将修改后的结果打印到屏幕上.Sed处理文本时是以行为单位的,每处理一行就立即打印出来,然后在处理下一行,直至全文处理结束. Sed可做的编辑动作包括删除.查找替换.添加.插入.从其他文件中读入数据等,如果想对修改后的流文件进行保存更改,则需要使用重定向对修改后输出的内容进行保存 Sed的用法:sed  [optio

第9章 文本处理工具sed

笔记整理开始时间:2018年4月17日08:45:48 更多内容请点击: Linux学习从入门到打死也不放弃,完全笔记整理(持续更新,求收藏,求点赞~~~~) http://blog.51cto.com/13683480/2095439 本章内容 sed介绍 sed用法 sed高级用法 文本处理工具sed Stream EDitor,行编辑器 又称流编辑器,它一次处理一行内容.处理时,把当前处理的行存储在临时 缓冲区,称为"模式空间"(pattern space),接着用sed命令处理

【开发工具】vim编辑器实用技巧总结

总结一些我们在平时使用vim编辑器的一些实用功能,后续会一直更新. 1.  visual插件 visual插件其实相当于一个书签作用,比如我们在一篇很长的源代码文件中,我们可以标记一行,然后后来我们再想回到这一行时,只需要一个快捷键就能迅速定位到这一行,非常方便,不用不停地往上或往下翻. 1.1  常用命令 1.  mm标记一个标签: 2.  F2回到被标记的那一行: 3.  连续按两次mm就可以取消标签: 4.  shift+F2可以在几个标签来回切换: 2.  emmet.vim插件 emm

9-13 文本处理工具sed及awk的用法

文本编辑三剑客:grep, sed, awk    grep: 文本搜索工具:egrep, fgrep    sed: stream editor, 流编辑器:    awk(gawk):文本格式化工具,报告生成器 sed命令: 基本正则表达式的元字符:     字符匹配:            .: 匹配任意单个字符:            []:匹配指定范围内的任意单个字符:            [^]:匹配指定范围内的任意单个字符: [:lower:]:所有小写字母 [:upper:]:

12文本处理工具sed

文本处理的工具sed Stream EDitor, 行编辑器 sed是一种流编辑器,它一次处理一行内容.处理时,把当前处理的行存储在临时缓冲区中,称为"模式空间"(pattern space),接着用sed命令处理缓冲区中的内容,处理完成后,把缓冲区的内容送往屏幕.然后读入下行,执行下一个循环.如果没有使诸如'D' 的特殊命令,那会在两个循环之间清空模式空间,但不会清空保留空间.这样不断重复,直到文件末尾.文件内容并没有改变,除非你使用重定向存储输出.功能:主要用来自动编辑一个或多个文

Linux文本处理工具——Sed

sed:数据流编辑器: awk:报告文本的生成器 sed 基本用法:(Stream EDitor) Stream 流 EDitor 编辑器 行编辑器 全屏编辑器:vi/vimsed:内存空间(模式空间)默认不编辑源文件,仅对模式空间中的数据作处理,处理结束后,将模式空间打印到屏幕 sed [options] 'AddressCommannd' file ... -n: 静默模式,不再默认显示模式空间中的内容 -i: 直接修改源文件 -e SCRIPT -e SCRIPT:可以同时执行多个脚本 -

centos 7中的文本处理工具sed命令的使用

sed是一个强大而简答的文本解析转换工具,可以读取文本,并根据指定的条件对文本内容进行编辑(删除.替换.添加.移动等),最后输出所有行或者仅输出处理的某些行.sed也可以在无交互的情况下实现相当复杂的文本处理操作,被广泛应用于shell脚本中,用以完成各种自动化处理任务.sed的工作流程主要包括读取.执行和显示三个过程: 读取:sed从输入流(文件.管道.标准输入)中读取一行内容并存储到临时的缓冲区中(也称为模式空间). 执行:默认情况下,所有的sed命令都在模式空间中顺序地执行,除非指定了行的

9 处理文本的工具sed

sed 行编辑器:sed是一种流编辑器,它一次处理一行内容.处理时,把当前处理的行存储在临时缓冲区中,称为"模式空间"(pattern space),接着用sed命令处理缓冲区中的内容,处理完成后,把缓冲区的内容送往屏幕.然后读入下行,执行下一个循环.如果没有使诸如'D'的特殊命令,那会在两个循环之间清空模式空间,但不会清空保留空间.这样不断重复,直到文件末尾.文件内容并没有改变,除非你使用重定向存储输出. 功能:主要用来自动编辑一个或多个文件,简化对文件的反复操作 sed命令行格式为