您的位置:首页 > 运维架构 > Linux

linux中sed学习小结

2015-02-17 16:16 204 查看
sed行处理工具1、显示文件中匹配行cat tmp.txt|sed -n '/匹配字符正则/p' (-n是不打印全部文件)2、显示文件第几行cat tmp.txt|sed -n '1p' --第一行--cat tmp.txt|sed -n '1,3p' --一到三行--3、替换文件中字符cat tmp.txt | sed 's/ee/ff/' 或者 sed 's/ee/ff/' tmp.txt --将tmp.txt文件中每行第一个匹配的ee替换为ff,不改变原文件--cat tmp.txt | sed 's/ee/ff/g' 或者 sed 's/ee/ff/g' tmp.txt --将tmp.txt文件中,全部ee替换为ff,不改变原文件--sed 's/ee/ff/' tmp.txt > tmp2.txt --将tmp.txt文件中ee替换为ff,不改变原文件,新生成一个新的tmp2.txt文件--4、指定行替换cat tmp.txt |sed '3,5s/ee/ff/' --将文件中3到5行替换ee为ff--5、匹配行的替换cat tmp.txt | sed '/^w/s/ee/ff/' --将tmp.txt文件中,以w开头行中的ee替换为ff--cat tmp.txt | sed '/^w/,/^x/s/ee/ff/' --将tmp.txt文件中,以w开头到x开头之间的行的ee替换为ff--6、批量重命名文件名例有文件:aa.txt bb.txt cc.txt 将其重命为aa.jpg bb.jpg cc.jpgls |sed 's/\(.*\)\.txt/mv \1\.txt \1\.jpg/'|sh\( )\为内存空间,将匹配的aa bb cc记录下来,\1为内存空间的第一个匹配生成mv的命令代码,通过sh执行--7、删除匹配行--不显示出来,不修改源文件
只删除第二行:$ sed '2 d' employee.txt删除1到4行:$ sed '1,4 d' employee.txt删除从第二行到最后一行:$ sed '2,$ d' employee.txt只删除奇数行:$ sed '1~2 d' employee.txt删除所有包含'Manager'的行:$ sed '/Manager/ d' employee.txt删除第一次包含'Jason'的行到第四行:$ sed '/Jason/,4 d' employee.txt删除从第一次匹配'Raj'的行 到匹配'Jane'之间的行:$ sed '/Raj/,/Jane/ d' employee.txt删除匹配'Jason'的行及它下面两行:$ sed '/Jason/,+2 d' employee.txt一些有用的删除例子
从一个文件删除所有空行:sed '/^$/ d' employee.txt删除所有注释行(假设注释以#开头):sed '/^#/ d' employee.txt
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: