博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
centos的sed命令修改文件(备忘)
阅读量:6664 次
发布时间:2019-06-25

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

#全文搜索替换

sed -i "s/要搜索字串/替换成的字串/g" 文件名

或者

sed -i s#要搜索字串#替换成的字串#g 文件名

#全文删除特定字串

sed -i "/要删的内容/d" 文件名

#全文删空行

sed -i "/^$/d" 文件名

#全文删除没有任何内容的空行(就是连空格都没按直接回车的那种,比如一顿回车出来的那种空行。用到了正则表达,^1表示以1开头,3$表示以3结尾,若只有^$就是专门表示那种连空格都没有的回车行)

sed -i "/^$/d" 文件名

#删除全文中空格组成的行和没有空格直接回车的空行

sed -i "/^[[:space:]]*$/d" 文件名

或sed -i "/^ */"d 文件名  (*前有一个空格)

#在文件中找到所有包含then的行,并在匹配行的下一行加上echo

sed -i "/then/aecho" 文件名

#在文中第5行的最前面加个井号

sed -i "5s/^/#/" 文件名

#只保留文中3、7、9、11这四行,其他行全删除

sed -i -n -e "3p" -e "7p" -e "9p" -e "11p" 文件名

#只保留文中包含linux、centos、redhat的行,其余行全不要

sed -i -n -r '/linux|centos|redhat/p' 文件名

#在文件中很多行都出现了“else”这个词,在其中第2行那个else的下一行追加“exit”字串。用grep -n 、cat -n、awk '{print NR}'还有nl命令都可给文件加上行号的,没有nl命令的yum装一下coreutils包。

sed -i "`grep -n else`a exit" 文件名

sed -i "`awk '/else/{print NR}' |awk 'NR==2{print}'`a exit" 文件名

sed -i "`nl -b a 1.txt |grep else |sed -n "2p" |awk '{print $1}'`a exit" 文件名

注意nl不加-b a的话,会把空行自动空过去不加行号但是sed不会,所以文件中有空行的话,nl加标号配合sed编辑就会出现误差了!

#如果需要在sed中引用变量,就用单引号把变量包上。如将文件中$B这行的第二次出现的the改成THE。

sed -i ''$B's/the/THE/2' 文件名

本文转自 朱科强 51CTO博客,原文链接:http://blog.51cto.com/zhukeqiang/1695005,如需转载请自行联系原作者
你可能感兴趣的文章
视觉工程师必须知道的工业相机50问,绝对干货!(转载)
查看>>
坦克大战0.1
查看>>
C# 全总结
查看>>
解剖JavaScript中的null和undefined【转】
查看>>
关于js中存在多个定时器的处理问题
查看>>
非关系型数据库redis-java基本操作
查看>>
取右端4到7位
查看>>
【原创】linux 批量清空文本内容
查看>>
SSM配置Socket多线程编程(RFID签到实例)
查看>>
iOS CoreData 增删改查详解
查看>>
JS 内置对象 String对象
查看>>
Python3,接口自动化第三次重构整体框架搭建和集成
查看>>
CloudStack tomcat集成方式分析
查看>>
有向图的强连通分量
查看>>
[Angular Tutorial] 5-Filtering Repeaters
查看>>
POJ1840(哈希)
查看>>
【转载】Redis优化经验
查看>>
标准项目文档
查看>>
如何查找Oracle某列值相同的字段
查看>>
@QueryParam和@PathParam比较
查看>>