Shell编辑之文本处理器(sed)

sed文本处理工具

sed:类似于vim就是一个文本编辑器,按行来进行编辑和处理

grep sed awk:文本三剑客都是针对文件内容的行来进行处理

sed的主要作用就是针对文本内容增删改查

sed可以支持正则表达式,也可以支持扩展正则表达式

sed的原理:读取,执行命令,显示三个过程

读取:读取文本内容之后,读取到的内容存放到临时的缓冲区,模式空间

执行:在模式空间,根据读取的文本内容,按行执行,除非指定行号,否则会遍历所有行,依次执行,从上往下执行

显示:执行完之后,把执行结果打印,如果要改变生效,模式空间被修改的内容会写入到指定的文件当中,指示操作,但是不最终写入文件,只展示结果,展示完之后,模式空间的数据会立即删除

sed文本内容处理工具

面试题

文件过大怎么办

split-l

split-b

cat 文件名 | sed 处理------中型文件,大型文件还是先分割的好

sed的实际操作

sed-e “操作” 文件1 -e “操作”文件2

只对一个文件操作,可以不加-e

常用选项

-e 条件操作选项

-f 指定脚本文件来进行处理输入的文件内容,把命令写在脚本里,用脚本里的命令来处理第二个文件里面的内容

-i 立即生效 慎用

-n 显示script处理之后的结果 (禁止sed的默认输出)

操作符:

s:替换 替换指定字符

d:删除,删除指定的行

a:增加,在当前行的下面插入指定的内容

i:增加,在指定行的上面插入执行的内容

c:替换,替换整行

y:替换字符,但是替换前后的字符长度必须一致123 456

p:打印 sed ' '打印

r:使用扩展正则

sed的核心就是改,删,增,查没有grep强大

sed 自己有一个默认输出,p打印会额外再打印一行

' = '只输出行号

打印指定行


'$p'打印最后一行


打印1-3行

 

 

打印偶数行


打印奇数行


文本过滤模式

1、对包含指定字符串的内容进行打印(所有包含的行都会打印)


2、应用基础正则表达式进行打印(以root为开头)

 

以bash结尾


3、扩展正则表达式


在etc passwd当中过滤出root开头 或者bash结尾所在的行


面试题: 怎么样不进入文件就可以删除文件当中的内容,免交互删除。

sed -i 'd' ky30 不进入文件就可以删除文本当中的内容

cat /dev/null > ky30.txt 不进入文件就可以删除文本当中的内容

指定行号来进行删除,打印剩余行数


删除一到三行 , 删除一和三 ;


匹配字符串内容删除


!取反


包含one---six删除


删除空行

sed替换

s:替换字符串

c: 整行替换

y:单字符替换,前后长度要一致


默认替换第一个 p前面加数字替换第几个 p前面加g全部替换

 

字母字符大小写替换


大写换小写


l&:转换成小写的特殊符号,在使用时,需要转义符

u&:转换成大写的特殊符号,在使用时,需要转义符

g:全部替换,如果不加,只会更改首字符

整行替换c


y单字符替换


增加

a:在下一行添加 i:在上一行添加 r:在行后读入指定文件内容

 

第一个文件是要读取的文件,第二个是要指定操作的文件

sed命令当中字符串的位置进行交换

 

 

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值