shell脚本--sed工具
2016-06-25 16:05
357 查看
sedsed:它叫做流式编辑器,它的工作场景一般是在编辑器中,把一段文本按行读入sed中然后按指定的方式输出,这是它最基本的用法。
一、sed的基本操作:
1、/pattern/action
pattern为正则表达式,对满足pattern的行作action操作
例如
这条命令和grep基本一样,其中-n的意思是只将执行后面指令的显示出来,如果不加-n选项则会把所有信息显示以便并且把匹配到的多显示一遍,p的意思是打印,如果改成d则是删除。-i的话则会修改源文件
2、/pattern/s/pattern1/pattern2/ 查找到第一个pattern所对应的行,然后将其中的pattern1转换为pattern2
例如
g的作用是将这一行中所有满足条件的元素都替换掉
3,范围控制
二、sed的高级操作
sed的高级操作来源于它的两个空间,一个叫做模式空间,另一个叫做保持空间,在不显示用命令去使用保持空间的时候,它一直就工作在模式空间中,它的工作方式是这样的,按行读取到模式空间下进行操作后再输出,然后再拿下一行。
保持空间的命令
g:将hold space中的内容拷到pattern space中,
G:将hold space中的内容append到patternspace\n后
h:将pattern space中的内容拷贝到hold space中,
原来的hold space里的内容被清除
H:将pattern space中的内容append到holdspace\n后
d:删除pattern中的所有行,并读入下一新行到pattern中
D:删除multiline pattern中的第一行,不读入下一行
x:交换保持空间和模式空间的内容
例1:将上面的file中的每一行的结尾加一个空格
例二:行列转换
注意:使用H的作用是将每一行都追加到保持模式下,然后在最后将保持空间下的数据交换到
模式空间然后执行替换操作,sed时按行去读取的,读取一行的时候是看不到\n的,只能将所
有数据全部H到保持空间保存起来,才找的到。
例三:倒序打印
从字面上理解,第一行不从保持空间G,最后一行不用删除模式空间
中的数据,其他行先G,然后h,之后d。
例四:1到100的求和
这个和上面的是类似的。
总结:sed工具的学习主要是多加练习,它更多的是工作在编辑器下对文本的操作
例如vim编译器下底行模式就可以用s///命令进行替换。
一、sed的基本操作:
1、/pattern/action
pattern为正则表达式,对满足pattern的行作action操作
例如
这条命令和grep基本一样,其中-n的意思是只将执行后面指令的显示出来,如果不加-n选项则会把所有信息显示以便并且把匹配到的多显示一遍,p的意思是打印,如果改成d则是删除。-i的话则会修改源文件
2、/pattern/s/pattern1/pattern2/ 查找到第一个pattern所对应的行,然后将其中的pattern1转换为pattern2
例如
g的作用是将这一行中所有满足条件的元素都替换掉
3,范围控制
二、sed的高级操作
sed的高级操作来源于它的两个空间,一个叫做模式空间,另一个叫做保持空间,在不显示用命令去使用保持空间的时候,它一直就工作在模式空间中,它的工作方式是这样的,按行读取到模式空间下进行操作后再输出,然后再拿下一行。
保持空间的命令
g:将hold space中的内容拷到pattern space中,
G:将hold space中的内容append到patternspace\n后
h:将pattern space中的内容拷贝到hold space中,
原来的hold space里的内容被清除
H:将pattern space中的内容append到holdspace\n后
d:删除pattern中的所有行,并读入下一新行到pattern中
D:删除multiline pattern中的第一行,不读入下一行
x:交换保持空间和模式空间的内容
例1:将上面的file中的每一行的结尾加一个空格
例二:行列转换
注意:使用H的作用是将每一行都追加到保持模式下,然后在最后将保持空间下的数据交换到
模式空间然后执行替换操作,sed时按行去读取的,读取一行的时候是看不到\n的,只能将所
有数据全部H到保持空间保存起来,才找的到。
例三:倒序打印
从字面上理解,第一行不从保持空间G,最后一行不用删除模式空间
中的数据,其他行先G,然后h,之后d。
例四:1到100的求和
这个和上面的是类似的。
总结:sed工具的学习主要是多加练习,它更多的是工作在编辑器下对文本的操作
例如vim编译器下底行模式就可以用s///命令进行替换。
相关文章推荐
- android wifi 无线调试
- 运维入门
- 动态清空 nohup 输出文件
- install scrapy with pip and easy_install
- 使用 sed 命令查找和替换文件中的字符串的 16 个示例
- Linux Shell常用技巧
- Linux下使用sed编辑器详解
- Shell 脚本编程陷阱
- Sed 命令完全指南
- VBS脚本写的Windows硬件检测工具分享
- 用vbscript实现隐藏任务栏图标的脚本
- 用autoit编写第一个脚本(Hello World)
- VBS调用WMI快速关闭IE的脚本
- Oracle数据库执行脚本常用命令小结
- 收集的ROS防火墙脚本
- JSP脚本漏洞面面观
- shell字符串操作详解
- 不错的批处理脚本 第一部分