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 #去除空格
上一篇: sed 笔记