linux工具
来源:互联网 发布:清华大学矩阵论视频 编辑:程序博客网 时间:2024/05/18 02:37
==linux工具==
sed流式编辑器
1.工作原理
当sed由标准输入读取一行资料并放入pattern space(模式空间)时,sed按照sed script 的编辑指令逐一对pattern space内的资料执行编辑,之后再有pattern space内的结果送到标准输出,接着再将下一行资料读入。重复执行上述动作,直至读完所有资料行结束为止,另外,sed还有hold space(保持空间)可以作为暂时的文本保存区,跟pattern space进行交互。
2.实现
- 命令选项
- -n :只打印模式匹配的行
- -e :直接在命令行模式上进行sed动作编辑
- -f : 将sed的动作写入一个文件内,用 -f filename 执行filename 内sed动作
- -r :支持扩展表达式
- -i :直接修改文件内容
- 命令格式
sed [option]'sed command' filename option正则表达式
- 脚本格式
sed [option] -f 'sed script' filename
实例
[a@localhost ~]$ cat file aaaaaaabbbbbbccccccddddddddadasdasdcc135100024441231231243122312dasdas21321eqwd3212312ef2343e21321edar3dcsdvawdascase123wwdqwd763608087@qq.comwww.baidu.com
[a@localhost ~]$ sed -n '/^a/p' file #只显示以a开头的行 aaaaaaa
command参数
d删除一行
[a@localhost ~]$ sed -n -r '/1[3578][0-9]{9}/p' file ##提取手机号码 13510002444[a@localhost ~]$ sed -r '/1[3578][0-9]{9}/d' file ###表示删除一行aaaaaaabbbbbbccccccdddddddadasdasdcc1231231243122312dasdas21321eqwd3212312ef2343e21321edar3dcsdvawdascase123wwdqwd
n读入下一行
a\加入文字(匹配行文字后输出)
[a@localhost ~]$ sed -r '/1[3578][0-9]{9}/a\telnum' file aaaaaaabbbbbbccccccdddddddadasdasdcc13510002444telnum1231231243122312dasdas21321eqwd3212312ef2343e21321edar3dcsdvawdascase123wwdqwd
i\插入文字(匹配行文字前输出)
[a@localhost ~]$ sed -r '/1[3578][0-9]{9}/i\telnum' file aaaaaaabbbbbbccccccdddddddadasdasdcctelnum135100024441231231243122312dasdas21321eqwd3212312ef2343e21321edar3dcsdvawdascase123wwdqwd
c\替换文字(将文字替换匹配文字进行输出)
[a@localhost ~]$ sed -r '/1[3578][0-9]{9}/c\telnum' file aaaaaaabbbbbbccccccdddddddadasdasdcctelnum1231231243122312dasdas21321eqwd3212312ef2343e21321edar3dcsdvawdascase123wwdqwd
s 模式替换 找到匹配行,进行匹配替换操作
[a@localhost ~]$ sed 's/a/telnum/' file telnumaaaaaatelnumdsdsaabbbbbbccccccdddddddtelnumdasdasdcc135100024441231231243122312dtelnumsdas21321eqwd3212312ef2343e21321edtelnumr3dcsdvawdtelnumscase123wwdqwd
g参数 在该行中,替换所有匹配而不是替换第一次匹配
[a@localhost ~]$ sed 's/a/telnum/g' file telnumtelnumtelnumtelnumtelnumtelnumtelnumtelnumdsdstelnumtelnumbbbbbbccccccdddddddtelnumdtelnumsdtelnumsdcc135100024441231231243122312dtelnumsdtelnums21321eqwd3212312ef2343e21321edtelnumr3dcsdvtelnumwdtelnumsctelnumse123wwdqwd
- n参数 在该行中,替换第n个匹配
[a@localhost ~]$ sed 's/a/telnum/2' file atelnumaaaaaadsdstelnumabbbbbbccccccdddddddadtelnumsdasdcc135100024441231231243122312dasdtelnums21321eqwd3212312ef2343e21321edar3dcsdvtelnumwdasctelnumse123wwdqwd
p参数 对该行执行替换,并输出该行文字
[a@localhost ~]$ sed -n 's/a/telnum/p' file telnumaaaaaatelnumdsdsaadtelnumdasdasdcc2312dtelnumsdas21321edtelnumr3dcsdvawdtelnumscase123wwdqwd
w filename 参数 将替换后的该行写入filename文件中
[a@localhost ~]$ sed -n 's/a/telnum/wnew' file [a@localhost ~]$ cat new telnumaaaaaatelnumdsdsaadtelnumdasdasdcc2312dtelnumsdas21321edtelnumr3dcsdvawdtelnumscase123wwd
- 多行处理
- 参数
- N 与匹配行时,再读入下一行,加在当前patern space文字的后面
- 将pattern space第一个newline字母前的文字删去,仅一个newline字母时,相当于d命令
- 存取暂存区的命令(hold space与pattern space交互)
- h pattern space 拷贝到hold space
- H pattern space 追加到hold space 后
- g hold space 拷贝到pattern space
- G hold space 追加pattern space
- x 交换两个空间的内容
1 0
- linux 工具
- linux工具
- linux 工具
- linux工具
- linux工具
- Linux工具
- linux(工具)
- linux工具
- linux工具
- linux工具
- linux 工具
- linux工具
- linux 工具
- 【测试工具】Linux限流工具
- Linux专区开发工具
- [Linux]C++编程工具
- Linux 进程调度工具
- linux远程管理工具:putty
- 从动态获取表格的的内容:
- POJ3624背包问题
- MySQL备份及恢复预研文档
- 解决在root里添加用户后登录后出现密码错误的问题
- Ubuntu16.04 下安装 Pycharm
- linux工具
- poj-3461 kmp字符串匹配问题
- CoreJava 笔试题摘抄(二) 基础篇
- 你真明白 Python 装饰器么?
- 《C和指针》——宏中容易出现的错误
- Adb shell 关于进程的常用操作命令
- WEB项目总结(一) 支付宝接口接入详解
- Unity 导出 Gradle 工程(Android Studio)
- 队列的基本操作【严蔚敏】