shell_Day06
2024-10-21 06:24:41
sed命令
Linux文本处理三剑客 之 sed
sed stream EDite
作为行编辑器,对文本进行编辑(以行为单位进行编辑)
注意:sed编辑文件,却不改变原文件;
sed的工作原理:
指定一个文本文件,依次读取文本文件中每行的内容,读取到模式空间中(PATTERN SPACE),在模式空间中进行文本匹配(正则表达式),对匹配后的内容进行修改(替换、删除、打印、修改、保存等)
用法:
sed [OPTION]... {script-only-if-no-other-script} [input-file]...
sed [参数] “sed自己独立的用法格式的语句”[文本文件]
sed [OPTION]... {script-only-if-no-other-script} [input-file]...
sed [参数] “sed自己独立的用法格式的语句”[文本文件]
常见选项
-n 拒绝默认显示
-r 指定使用扩展的正则表达式
-e script for while if
-f 指定脚本文件
-l 指定文本换行的长度?
-i 直接修改文件内容(不要使用)
-n 拒绝默认显示
-r 指定使用扩展的正则表达式
-e script for while if
-f 指定脚本文件
-l 指定文本换行的长度?
-i 直接修改文件内容(不要使用)
地址定界方式
1、直接匹配数值
sed -n '5p' 文件
2、 d~步长
sed -n '1~3p' 文件
3、$ 指定行尾
sed -n '10,$p' 文件
4、/正则/
/正则1/,/正则2/
sed -n '/k\{5,\}/,$p' abc
5、0,addr
addr 可以为 数字/$/正则表达式
sed -n '0,/k\{5,\}/p' abc
6、addr,+N
配置addr行到,addr后N行
sed -n '/fd/,+5p' abc
**常见命令
p print 打印(默认在屏幕上显示出来) 建议和 -n 一起使用;
c 替换
sed "/aaa/c \A" a
d 删除
sed "/aaa/d" a
sed "1,3d" a
n N 读取/添加 模式匹配到的行的下一行内容,再对其进行操作
w 保存文件内容到一个新的文件
sed "/patthen/w 新的文件名" 原来的文件名
sed "/k/w /tmp/aabbcc" abc
*s* 文本内容替换,默认替换模式空间匹配到的第一项;
语法格式: s/pattern/字符串/
中间的 / 可以替换为任意一个特殊字符 例如:s### s@@@ s%%%%
g 全部
\1 \2 和正则表达式的分组相同,实现反向应用;
指定某一个匹配项进行修改替换
& 调用前面(pattern)匹配的内容
sed "s/r..t/&er/g" 文件
p print 打印(默认在屏幕上显示出来) 建议和 -n 一起使用;
c 替换
sed "/aaa/c \A" a
d 删除
sed "/aaa/d" a
sed "1,3d" a
n N 读取/添加 模式匹配到的行的下一行内容,再对其进行操作
w 保存文件内容到一个新的文件
sed "/patthen/w 新的文件名" 原来的文件名
sed "/k/w /tmp/aabbcc" abc
*s* 文本内容替换,默认替换模式空间匹配到的第一项;
语法格式: s/pattern/字符串/
中间的 / 可以替换为任意一个特殊字符 例如:s### s@@@ s%%%%
g 全部
\1 \2 和正则表达式的分组相同,实现反向应用;
指定某一个匹配项进行修改替换
& 调用前面(pattern)匹配的内容
sed "s/r..t/&er/g" 文件
sed的高级应用
模式空间 -- hold space"占有空间"
dirname -- 取出文件路径的路径部分
basename -- 取出文件路径的文件名部分
basename -- 取出文件路径的文件名部分
最新文章
- Linux分区和挂载硬盘
- PHP中file_put_contents追加时换行
- 销傲销售过程GSP管理系统功能概述
- Watering the Fields(irrigation)
- 处理html5离线应用程序存储的一些问题。
- mount/umount系统调用
- ubuntu下修改时区
- 我的第一个 Rails 站点:极简优雅的笔记工具-Raysnote
- Maven实战二
- python的web开发环境Django配置
- K:枚举的线程安全性及其序列化问题
- 补习系列(12)-springboot 与邮件发送
- win10 家庭版不支持gpedit.msc的解决办法
- 高斯消元模板!!!bzoj1013
- 【分享】Web前端开发第三方插件大全
- 『TensotFlow』转置卷积
- LeetCode 7 Reverse Integer &; int
- canvas与svg特性和使用对比
- linux kernel &; source code analysis&; hacking
- 2012Noip提高组Day1 T3 开车旅行
热门文章
- Docker安装elasticsearch、kibana
- Slf4j+log4j日志使用
- ROS多机通讯
- 【KAWAKO】docker暴力上手
- CF1736C1 Good Subarrays (Easy Version)
- 钓鱼攻击之:CHM电子书钓鱼
- 代码随想录算法训练营day22 | leetcode 235. 二叉搜索树的最近公共祖先 ● 701.二叉搜索树中的插入操作 ● 450.删除二叉搜索树中的节点
- net core 依赖注入DI
- [转载]pytest报AttributeError: module ‘pytest‘ has no attribute ‘main‘
- Laravel 框架根据经纬度计算在一定距离内的数据