正则-sed

正则
Sed没有grep好用,但是可以替换,简单的说,grep用于查找,sed用于替换比较合适
1)Sed过滤出来的信息没有颜色显示
例如sed -n '/root/'p 1.txt 过滤出来对应的
正则-sed
文章图片

2)sed同样支持. * 或者+号等
例如sed -n '/r*t/'p 1.txt
正则-sed
文章图片

sed -nr '/o+t/'p 1.txt找出含有t前有o的打印
正则-sed
文章图片


(3)指定要过滤出特定的字符出现的次数
例如配置两个o出现sed -nr '/o{2}/'p 1.txt
正则-sed
文章图片


(4)稍微复杂的过滤出字符串root或者字符串111
中间有|隔离开来sed -nr '/root|111/'p 1.txt
正则-sed
文章图片


这里可以使用-e参数,效果是一样的
正则-sed
文章图片

稍微注意的是p携带在单引号里面或者外面都可以的,而如果两个都匹配,则打印两次

(5)可以打印指定的行
例如打印第14行sed -n '14p' 1.txt
正则-sed
文章图片

sed -n '3,5p' 1.txt//打印3-5行
正则-sed
文章图片


sed-n'3,$'ptest.txt //打印第3行到最后一行。

(6)其他应用
sed -n '/^s/'p 1.txt //打印出以s开头的行。
正则-sed
文章图片


sed -n'/in$/'p1.txt //打印出以in结尾的行

正则-sed
文章图片


sed -n'/.+root.+/'p1.txt //打印出root字符串在行中间的行。
正则-sed
文章图片



(7)-I匹配时不区分大小写
正则-sed
文章图片

(8)删除指定的行使用d参数
sed '3'd 2.txt
正则-sed
文章图片


(9)指定性删除
sed -i '/abc/'d 2.txt
特别注意,这个删除是不可逆的,删除前一定要备份好数据
正则-sed
文章图片

不加-i则不会删除掉对应的文件
这里其实sed也是只查看对应的,但是没有真正的删除
正则-sed
文章图片


(10)替换
替换字符串,和vim非常的像
sed '1,10s/root/toor/g' 1.txt
正则-sed
文章图片


sed -r '1,5s/ro+/b/g' test.txt //将1-5行中的ro+替换为b ,加上-r选项就可以不使用转义字符
正则-sed
文章图片


删除所有的英文字母
head 1.txt |sed 's/[a-zA-Z]//g'
正则-sed
文章图片


调换2个字符的位置
head |sed -r 's/([^:]+):(.*):([^:]+)/\3:\2:\1/'//sed命令支持管道符,使用小括号把要替换的字符打包成一个整体,这里是:分割
正则-sed
文章图片


添加指定内容,例如
sed's/^.*$/123&/' 1.txt给行首添加123
.*代表任意
正则-sed
文章图片




【正则-sed】

    推荐阅读