sed命令删除前100行里匹配的行
sed是linux系统里非常简单实用的文本处理小工具,配合正则表达式以及find、grep等基本命令,可以非常快速实现一些日常的文本处理。
举几个简单的例子吧:
1. 将当前目录下所有txt文件中abc替换为xyz:
sed -i ‘s/abc/xyz/g' *.txt
解释一下,这里-i参数是直接修改输入文件, ’s/abc/xyz/g' 是对输入文件执行的操作, *.txt 是当前目录下的所有txt文件。
‘s/abc/xyz/g' 意思是把输入文件逐行读入,然后查找abc并替换为xyz。这里的s就是替换操作的意思,g是指替换这一行的所有abc。也就是说,如果一行有多个abc都会替换;如果没有这个g,只会替换第一个abc。当然了,如果这一行没有abc, 就不会替换。
2. 给替换操作添加行数范围限制, 比如在前100行进行查找替换(后续行不替换),可以写成:
sed -i ‘1,100s/abc/xyz/g' *.txt
3. 匹配字符串并删除该行:
sed -i '/zhangsan/d' myfile.txt
这个命令会把myfile.txt里,所有包含zhangsan这个字符串的行,都删掉。
4. 那么问题来了,如果只想对前100行进行查找并删除呢?
不能写成sed -i '/zhangsan/1,100d' myfile.txt
也不能写成 sed -i '1,100/zhangsan/d' myfile.txt
都会报格式错误,那到底该怎么写呢?
正确的写法是:
sed -i "1,100{/zhangsan/d}" myfile.txt
5. 插入一行字符串,比如在文件开头插入下面的作者和日期信息
#arthur: kevyoung
sed -i ’1i\#arthur: kevyoung' myfile.c
这里1i的意思是在第一行插入,如果是在最后一行插入,写成
sed -i ’$i\#arthur: kevyoung' myfile.c
6. find跟sed结合使用:
比如需要替换的文件分布在当前目录下的各个子目录里,可以先查找到,再使用sed处理:
find . -name “*.txt" | xargs sed -i 's/abc/xyz/g'
7. grep跟sed结合使用:
比如先查找包含zhangsan的文件,然后将这些文件里的abc替换为xyz
grep -rl zhangsan . | xargs sed -i 's/abc/xyz/g'
这里grep的参数r是指在当前目录下的所有子子孙孙目录查找,参数l(小写L)是列举出文件名。
sed命令删除前100行里匹配的行相关推荐
- sed删除以什么开头的内容_使用 sed 命令删除文件中的行
原标题:使用 sed 命令删除文件中的行 Sed 代表流编辑器 Stream Editor ,常用于 Linux 中基本的文本处理.sed 命令是 Linux 中的重要命令之一,在文件处理方面有着重要 ...
- sed删除以什么开头的内容_技术|如何使用 sed 命令删除文件中的行
Sed 代表流编辑器Stream Editor,常用于 Linux 中基本的文本处理.sed 命令是 Linux 中的重要命令之一,在文件处理方面有着重要作用.可用于删除或移动与给定模式匹配的特定行. ...
- Shell:用sed命令删除特定行
一.sed命令 Linux sed 命令是利用脚本来处理文本文件. sed 可依照脚本的指令来处理.编辑文本文件. 此处用-i参数实现 -i : 直接在文件上编辑 (edit files in pla ...
- linux sed命令 删除指定行
sed命令常用到的两个选项: -i : 直接在文件上编辑 (edit files in place) -e[默认选项]:只在命令行输出,而文件不改变 (add the script to the co ...
- sed命令:删除匹配行和替换
删除以a开头的行 sed -i'/^a.*/d'tmp.txt -i 表示操作在源文件上生效.否则操作内存中数据,并不写入文件中. 在分号内的/d表示删除匹配的行 替换匹配行: sed -i's/^a ...
- Linux使用sed命令删除文件中指定内容
因为日志文件太大,希望删除过早的一部分日志,虽然可以用vi或vim打开后删除,但是因为文件很大,打开就很耗时. 因此打算使用sed命令,在不打开文件的情况下删除,但是删除后需要把内容存入一个新文件中, ...
- [linux] linux sed命令删除一行/多行
删除第一行 sed -i '1d' filename 范围删除,删除1-3行 sed -i '1,3d' filename 删除第n行 sed -i 'nd' filename 删除最后一行 sed ...
- sed命令删除最后一行的最后一个字符
例如 {info}, {info}, {info}, {info}, 变成 {info}, {info}, {info}, {info} 命令: sed -i '$ s/.$/]/' changeLi ...
- sed命令的作用linux,Linux重要命之sed命令详解
导读 Sed 代表流编辑器,常用于 Linux 中基本的文本处理.sed 命令是 Linux 中的重要命令之一,在文件处理方面有着重要作用.可用于删除或移动与给定模式匹配的特定行. 如何使用sed命令 ...
最新文章
- QIIME 2教程. 30补充资源SupplementaryResources(2020.11)
- ubuntu14 备份
- 信息学奥赛一本通(1227:Ride to Office)
- openlayers之EPSG3857
- 深入浅出ObjC之消息 (转)
- MongoDB CookBook读书笔记之导入导出
- TensorFlow基础篇(四)—— tf.nn.relu()
- 微信高并发资金交易系统设计方案——百亿红包背后的技术支撑
- Deepin下安装搭建latex编写环境
- Swift 实现图片转字符画的功能
- iTunes只能装C盘吗_就这一篇:教你真正有效地解决爆满的C盘!
- ansys19.0安装破解教程(图文详解)
- iphone游戏开发(转)
- Kubernetes--学习笔记-3-Kubernetes Web UI部署
- ArduCopter——ArduPilot——航点导航WPNav(一)
- 签名格式_职场商务电子邮件礼仪
- 因果6-估计因果效应
- python snmp
- 编程语言:C语言网络资源
- Excel通过单独选中每列可以实现每隔1列插入1列
热门文章
- python 导入 arcpy模块_ArcPy学习入门(六):导入Arcpy-阿里云开发者社区
- Couldn't find executable named joy_node below /opt/ros/kinetic/share/joy解决方法
- 【IoT】 产品设计之结构设计:模具前模与后模
- 【Airplay_BCT】Bonjour conformance tests苹果IOT
- pngquant java,使用pngquant批量压缩png
- 错题本——数据库系统工程师 2012
- 给在读研究生的一封信(转)
- 转:给在读研究生的一封信
- 点击图片实现上一张下一张JS
- 有些东西,我们还不知道