sed

文本处理工具sed

sed  Stream EDitor 行编辑器

sed 是一种流编辑器,它一次处理一行内容,处理时把当前处理的行存储在临时缓冲区中,称为“模式空间”(pattern space)接着用sed 命令处理缓冲区的内容,处理完成后把缓冲区的内容送往屏幕,然后读入下一行,执行下一个循环,但不会清空保留空间,这样不断重复,知道文件末尾,文件内容并没有改变,除非你使用重定向存储输出

功能:主要用来自动编辑一个或多个文件,简化对文件复杂的操作,编写转换程序等

sed工具的用法 sed 【option】 ….  ‘script’  inputfile ………

[option] 选项  -n : 不输出模式空间内容到屏幕上,即不自动打印

-e : 多点编辑

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

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

-i.bak : 备份文件并原文编辑

‘script’       ‘地址命令’

1 不给地址,对全文进行处理

2 单地址: # : 指定行数        $ :最后一行

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

3 地址范围: # , #           # , +#          /pat1/ , /pat2/         # , /pat1/

4 ~        :   进步    1~2  奇数行   2~2  偶数行

例如:

创建一个文件 f1 里面包含 1-10数字  用命令sed来做实验

sed  ‘4p’  f1

RD@RNT`%M1{V)(%6U~PUKGA

只打印第4行 用 -n

sed  -n  ‘4p’ f1

TJ6A`SU97%%J~SE]00~U(2N

打印偶数行  用 ‘2~2p’  打印偶数    用’1~2p’打印奇数

sed -n  ‘2~2p’  f1

4VNN%{P[Q}MOVMQ}7([@@SU

-e 多点打印

p: 打印模式空间内容,追加到默认输出之后

sed   -ne ‘2p’ -e ‘4p’ f1

BP9H8VMF4J{)QUT`L4{$]VE

-i.bak 备份 并对原文件编辑    sed  -i.bak ‘/aliaseas/aalias p=poweroff’  .bashrc

8@4(I]53A@B_Q6NV6M@(N~X

8@4(I]53A@B_Q6NV6M@(N~X

-f 从文件中读取编辑脚本

sed -nf  sedscript.txt f1

2Y0E_QNW0_XIXC8}SKMMOR6

sed 工具的编辑命令

d : 删除模式空间的匹配行,并立即启用下一轮循环

5S%C_4SU}6X5JG2FIS)H9R4

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

R5(UBSV3G[56ITTU{8OI

=: 为模式空间中的行打印行号  显示在/etc/passwd 文件中含有root 的行号

FSBD[%)T{TKXO9PB7UU$1TC

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

N9TK_PUYAY@NSI}U{4QVVWL

i [\]text:在行前面插入文本

UHIWT$VLEMJ5FXT~PSH]XTK

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

0]}]IQ3JWPL@)CUB_5}39Y5

w 文件: 保存模式匹配的行至指定文件

IRZ$_[1V%V%X$(~[_7}4

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

]L_Y7HE6IS)OTI24B8_1M`F

 

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

在/etc/default/grub    给GRUB_CMDLINE_LINUX=”crashkernel=auto rhgb quiet” 后面加个字符串xyz

X]JYY)DJCBCYJ`IPP]Y`8V9

 

高级编辑命令

P : 打印模式空间开端至 \n 内容,并追加到默认输出之前

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

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

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

G :从保持空间取出数据追加至模式空间

x :  把模式空间内容与保持空间内容互换

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

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

d :删除模式空间中的行

D :如果模式空间包含换行符,则删除直至第一个换行符的模式空间中,并不会读取新的输入行,而使用            合成的模式空间重新启动循环,如果模式空间不包含换行符,则会像发出 d 命令那样启动正常的循环

GSV_ZDCU0ARYST_7$NBFCB9

只保留奇数行

@~%8GP}20JRK$H``4U6R0)S

倒序显示

{OL5{Z06XDGRMK1HJ27]CUY

7787`S_{Q}U5JEQF%1LCYIR

只留最后一行

FJ}`$9B6WW5}((PSI}DQ_Z5

只保留最后2行

R6$$6JZJI7R}@$F3@E8JBB3

将文本文件的n和n+1行合并为一行,n为奇数行

}OX13N$UG1091E6]4[M8`B5

 

 

 

 

本文来自投稿,不代表Linux运维部落立场,如若转载,请注明出处:http://www.178linux.com/97375

(0)
祝韵杰-桃子祝韵杰-桃子
上一篇 2018-05-02
下一篇 2018-05-03

相关推荐

  • 小白加薪升职记之长征第一步

    用户管理基础命令

    Linux笔记 2018-05-24
  • memcached

    数据结构模型: 结构化数据:关系型数据库;mysql、mariadb、oracledb 半结构化数据:xml、json、nosql 非结构化数据:文件系统; 缓存系统的种类: 代理式缓存; 旁路式缓存; memcached的特性: k/v缓存:可序列化数据;存储项:key/value,标志,过期时间; 功能的实现一半依赖于服务端,一半依赖客户端; 分布式缓存…

    2018-07-14
  • awk工具详解

    介绍了awk的使用格式,和它的一些使用技巧。

    2018-05-17
  • Linux第一周命令总结

    hostname  完整主机名  cat +文件路径 可查看文件信息 cat /etc/centos-release 查看文件  版本的名称、发行时间所有shell cat/etc/shells  显示当前系统使用的 lsd_release -a  命令  查看版本 /etc/centos-release 是文本文件  cat是查看文本的命令 uname-r…

    2018-07-22
  • Linux 的用户、文件管理和权限

    Linux文件系统上的特殊权限 可执行文件上SUID权限   目录上的SGID权限 sticky 特殊权限数字法: 权限位映射: 设定文件的特定属性: 访问控制列表: 访问控制列表: 访问控制列表:        

    Linux笔记 2018-04-08
  • 数组,字符串切片,高级变量

    数组 变量:存储单个元素的内存空间 数组:存储多个元素的连续的内存空间,相当于多个变量的集合 数组名和索引 索引:编号从0开始,属于数值索引 注意:索引可支持使用自定义的格式,而不仅是数值格式,即为关联索引 bash4.0版本之后开始支持 bash –version   查看bash版本 bash的数组支持稀疏格式(索引不连续) 声明数组: de…

    Linux笔记 2018-05-13