欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

sed使用

程序员文章站 2022-06-21 16:30:06
...

参考:

https://segmentfault.com/a/1190000015885994

sed -i #操作直接修改文件内容
sed -n #仅仅输入后面操作的内容
sed -e #按照后面处理
其中: d 为删除 a为新增 p为打印

sed "s/b/a/g"  a.txt   #a字符替换b字符,g表示全局替换;  这里是只打印替换后的内容 不影响a文件内容
sed -i "s/b/a/g"  a.txt   #替换内容并写入a文件
echo "12345-m23994" |sed "s/.*-m//g"   #替换到-m的地方
echo "12345-m23994" |sed "s/m.*//g"    #替换从m开始的到结尾
sed 's/[0-9]/ii/2’   把数字第二次出现的地方刚才用ii替换
sed -i  "/***/d"   a.txt    #删除匹配***内容的行(可以是正则表达式)
sed "2d"  a.txt   #删除第2行
Sed ‘2,$d’ a.txt  #删除第二行到最后一行
sed -n "5,7p"  a.txt   #只打印5-7行  不加n时全文打印
nl /etc/passwd | sed '/root/p'    #搜索 /etc/passwd有root关键字的行
sed 's/.*-m//g'   #删除从头到-m的内容
Sed ‘s/jre.*//g’   #删除从jre开始到结束内容
nl /etc/passwd | sed -n '/root/{s/bash/blueshell/;p;q}'
#搜索/etc/passwd,找到root对应的行,执行后面花括号中的一组命令,每个命令之间用分号分隔,这里把bash替换为blueshell 
也可以分步骤执行sed  结果为:
1  root:x:0:0:root:/root:/bin/blueshell
sed ':a;N;$!ba;s/\n/ /g'   a.txt   #去除换行符
sed 's/[[:space:]]//g' a.xtx  #去除空格 
相关标签: shell