sed是逐行处理文本的工具。
sed文本的使用方法:
.法一
前置命令 | sed [选项] ‘条件指令’
法二
sed [选项] ‘条件’ 文件
相关说明
-
选项
-n 屏蔽默认输出
-r 支持扩展正则
-i 修改源文件 -
条件
行号# sed -n '4,7p' a.txt //输出第4~7行 # sed -n '4,+7p' a.txt //输出第4行及后面的7行 # sed -n '/^bin/p' a.txt //输出以bin开头的行 # sed -n '$=' a.txt //输出文件的行数
/正则/
指令
p 打印
d 删除
s 替换 //替换指定的字符s/旧/新/ //将**每行中的第一个**的---替换为--- s/旧/新/3 //将**每行中的第3个**---替换成--- s/旧/新/g //将**每行中的所有**-----替换成---- # sed '4,7s/^/#/' a.txt //将**第4-7行注释掉**
a 行后追加
i 行前插入
c 替换行 -
例子
-
删除每行中第一个字符 、最后一个字符
# sed -i 's/.//;s/.$//' a.txt
-
将文件中的第一个与到数第一个字符互换
# sed -i -r 's/^(.)(.*)(.$)/\3\2\1/' a.txt
//sed 默认不支持正则,使用正则时需要加上 -r 选项
-
删除文件中所有的数字
# sed -i -r 's/[0-9]//g' a.txt
-
删除所有的数字、行首空格
# sed -i -r 's/[0-9]//g;s/^()+//' a.txt
-
找到使用bash作登录Shell的本地用户
# sed -n '/bash$/s/:.*//p' /etc/passwd