博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
菜鸟学Linux 第017篇笔记 sed命令的使用
阅读量:6988 次
发布时间:2019-06-27

本文共 1576 字,大约阅读时间需要 5 分钟。

菜鸟学Linux 第017篇笔记 sed命令的使用

三大文本处理工具:

grep (print lines matching a pattern)

sed (Stream EDitor for filtering and transforming text)

awk (pattern scanning and processing language)

sed: Stream EDitor

行编辑器 (全屏编辑器:vi)

sed模式空间

sed保留空间(高级功能)

sed默认不编辑原文件,仅对模式空间中的数据做处理。

而后将处理结束后,将模式空间打印到屏幕。

使用格式

sed [options] 'AddressCommand' file1 file2 ...\

Options

-n 不打印模式空间

-i 直接修改原文件

-e script 可以同时执行多个AddressCommand

-f /path/file  

-r 表示使用扩展正则表达式

Address:

1. StartLine,EndLine

e.g. 1,100

$:最后一行

sed "1,2d" /etc/fstab 

2. /RegExp/ pattern  正则表达式

e.g. /^root/

sed "/oot/d" /etc/fstab

3. /pattern1/,/pattern2/  

表示第一次被pattern1匹配到的行,至第二次被pattern2匹配到的中间行。

4. LineNumber

指定的行

5. StartLine,+N 

从指定的行开始,向后的N行 一共N+1行

sed '1,+2d' /etc/fstab 

Command:

d 表示删除符合条件的行;

p 显示匹配到的行

a \stirng; 在指定的行后面追加新行,内容为string 加多行\n表示换行

i \stirng; 在指定的行前面追加新行,内容为string 加多行\n表示换行

r FILE Append text read from filename.

w FILE Write the current pattern space to filename.

s/patter/string/ 查找并替换,默认只替换每行中第一次

被模式匹配到的字符串

s%%% s### s@@@

加修饰符

g 全局替换

i 忽略字符大小写

&表示后向引用

小练习:

1、删除/etc/grub.conf文件中行首的空白符;

2、替换/etc/inittab文件中"id:3:initdefault:"一行中的数字为5;

3、删除/etc/inittab文件中的空白行;

4、删除/etc/inittab文件中开头的#号;

5、删除某文件中开头的#号以及后面的空白字符,

但要求#号后面必须有空白字符才可删除;

6、删除某文件中以空白字符后面跟#类开头的空白字符和#;

7、取出一个文件路径的目录名称;(待定,小的做不到,后期学习后再做)

key:

1. sed 's/^[[:space:]]//' /etc/grub.conf 

2. sed '$s/[[:digit:]]/5/' /etc/inittab

3. sed '/^$/d' /etc/inittab 

4. sed 's/#//' /etc/inittab 

5. sed -r 's/^#[[:space:]]+//' match.txt 

6. sed -r 's/^[[:space:]]+#//' match.txt

7. 未研究出来!!!

本文转自Winthcloud博客51CTO博客,原文链接http://blog.51cto.com/winthcloud/1863697如需转载请自行联系原作者

Winthcloud

你可能感兴趣的文章
AJPFX总结内部类
查看>>
Spring Boot Security 整合 JWT 实现 无状态的分布式API接口
查看>>
指向结构体变量的指针作函数参数
查看>>
MR程序重要组件-combiner
查看>>
HDFS 文件操作命令(2)
查看>>
深入理解typedef
查看>>
日期加减
查看>>
phpexcel 内存溢出 优化
查看>>
Haproxy+Keepalived主主高可用
查看>>
用java从hadoop中读数据
查看>>
实现首页分类栏按样式循环显示
查看>>
ActiveMQ 初试
查看>>
log4j xml 配置 自定义使用版
查看>>
才发觉---
查看>>
.net实现日志文件重命名且保留历史日志文件
查看>>
ORA-28000: the account is locked-的解决办法
查看>>
Spring中@Transactional(rollbackFor = Throwable.class)的作用
查看>>
js 实现多线程
查看>>
MySQL学习笔记之四:并发控制和事务机制
查看>>
c#基础重点:面向对象基础
查看>>