一、sed工作流程
sed 是一种在线的、非交互式的编辑器,它一次处理一行内容。处理时,把当前处理的行存储在临时缓冲区
中,称为“模式空间”(pattern space),接着用sed命令处理缓冲区中的内容,处理完成后,把缓冲区的内容
送往屏幕。接着处理下一行,这样不断重复,直到文件末尾。文件内容并没有改变,除非你使用重定向存储输出。
Sed主要用来自动编辑一个或多个文件;简化对文件的反复操作;编写转换程序等。
sed -ri.bak
sed -ric --follow-symlinks
二、命令格式
sed [options] 'command' file(s)
sed [options] -f scriptfile file(s)
注:
sed和grep不一样,不管是否找到指定的模式,它的退出状态都是0
只有当命令存在语法错误时,sed的退出状态才是非0
三、支持正则表达式
与grep一样,sed在文件中查找模式时也可以使用正则表达式(RE)和各种元字符。正则表达式是
括在斜杠间的模式,用于查找和替换,以下是sed支持的元字符。
使用基本元字符集 ^, $, ., *, [], [^], \< \>,\(\),\{\}
使用扩展元字符集 ?, +, { }, |, ( )
使用扩展元字符的方式:
\+
sed -r
四、sed基本用法
# sed -r '' /etc/passwd
# sed -r 'p' /etc/passwd
# sed -r -n 'p' /etc/passwd
# sed -r -n '/root/p' /etc/passwd
# sed -r 's/root/alice/' /etc/passwd
# sed -r 's/root/alice/g' /etc/passwd
# sed -r 's/root/alice/gi' /etc/passwd
# sed -r '/root/d' /etc/passwd
# sed -r '\#root#d' /etc/passwd
====================&#