sed是stream editor的简称,也就是流编辑器。盗用一张图片解释原理
命令格式:
SYNPPSIS: sed [OPTION]… {script-only-if-no-other-script} [input-file]…
选项:
-n 使用安静(silent)模式(想不通为什么不是-s)-e 直接在指令列模式上进行 sed 的动作编辑; -f 直接将 sed 的动作写在一个文件内, -f filename 则可以执行filename内的sed命令; -r 让sed命令支持扩展的正则表达式(默认是基础正则表达式); -i 直接修改读取的文件内容,而不是由屏幕输出。
常用命令
a ext append即追加字符串, a 的后面跟上字符串s(多行字符串可以用 分隔),则会在当前选择的行的后面都加上字符串s; c ext 取代/替换字符串,c 后面跟上字符串s(多行字符串可以用 分隔),则会将当前选中的行替换成字符串s; d 即删除,该命令会将当前选中的行删除; i ext insert即插入字符串,i 后面跟上字符串s(多行字符串可以用 分隔),则会在当前选中的行的前面都插入字符串s; p print即打印,该命令会打印当前选择的行到屏幕上; s/pattern/string/ 替换,通常s命令的用法是这样的:1,2s/old/new/g,将old字符串替换成new字符串 分隔符可以使 / # @ 等 修饰符 g:全局 i:忽略大小写
w /PATH/TO/SOMEFILE 保留模式空间匹配到的行至指定的文件中
例:
将passwd中含 root 的行保存在 当前目录下abc文件中 # sed '/root/w ./abc' passwd