在Unix/Linux系统中,sed命令采用逐行处理的方式对文件进行查找、删除、替换、添加、插入等操作。
语法:
sed [OPTION]... {script-only-if-no-other-script} [input-file]...
参数:
-n :只打印模式匹配的行
-e :直接在命令行模式上进行sed动作编辑,此为默认选项
-f :将sed的动作写在一个文件内,用–f filename 执行filename内的sed动作
-r :支持扩展表达式
-i :直接修改文件内容
案例:
sed -n '2p' testdata.txt #打印第二行
sed -n '2,5p' testdata.txt #打印第二到第五行
sed -n '/aaaaa/p' testdata.txt #打印文件中匹配aaaaa的行
sed -n '/bbbb/,4p' testdata.txt #打印从匹配bbbb的行到第四行
sed -n '2,/cccc/p' testdata.txt #打印第二行到匹配cccc的行
sed -n '/bbbb/,/dddd/p' testdata.txt #打印匹配bbbb的行到匹配dddd的行
sed -e '/^clam/d' testdata.txt #删除以clam开头的行
sed 's/clam/aaaa/' testdata.txt #使用aaaa替换clam
sed 's/clam/aaaa&/' testdata.txt #在clam之前添加aaaa
sed 's/clam/&aaaa/' testdata.txt #在clam之后添加aaaa
sed '/dovecot/s/$/dddd/' testdata.txt #在匹配dovecot的行末尾添加dddd
sed '/clam/i nihao' testdata.txt #在匹配clam的行前添加一行nihao
sed '/clam/a nihao' testdata.txt #在匹配clam的行后添加一行nihao
sed -i 's/clam/aaa/' testdata.txt #在原文件生效使用aaa替换clam
sed -i 's/clam/aaa/g' testdata.txt #在原文件生效使用aaa替换所有的clam