sed是一种流编辑器,它是文本处理中很是中的工具,可以完美的配合正则表达式使用,功能与众不同。处理时,把当前处理的行存储在临时缓冲区中,称为“模式空间”(pattern space),接着用sed命令处理缓冲区中的内容,处理完成后,把缓冲区的内容送往屏幕。接着处理下一行,这样不断重复,直到文件末尾。文件内容并无 改变,除非你使用重定向存储输出。Sed主要用来自动编辑一个或多个文件;简化对文件的反复操做;编写转换程序等。正则表达式
命令格式:编辑器
sed [options] 'command' file(s)工具
sed [options] -f scriptfile file(s)
1.选项spa
2.参数ip
文件:指定待处理的文本文件列表。
3.sed命令字符串
4.sed替换标记get
5.sed元字符集io
1.替换文本中的字符串:test
sed 's/book/books/' file
-n选项和p命令一块儿使用表示只打印那些发生替换的行:awk
sed -n 's/test/TEST/p' file
直接编辑文件选项-i,会匹配file文件中每一行的第一个book替换为books:
sed -i 's/book/books/g' file
使用后缀 /g 标记会替换每一行中的全部匹配:
sed 's/book/books/g' file
2.删除操做:d命令
删除空白行:
sed '/^$/d' file
删除文件的第2行:
sed '2d' file
删除文件的第2行到末尾全部行:
sed '2,$d' file
3.从文件读入:r命令
file里的内容被读进来,显示在与test匹配的行后面,若是匹配多行,则file的内容将显示在全部匹配行的下面:
sed '/test/r file' filename
4.写入文件:w命令
在example中全部包含test的行都被写入file里:
sed -n '/test/w file' example
5.打印奇数行或偶数行
方法1:
sed -n 'p;n' test.txt #奇数行
sed -n 'n;p' test.txt #偶数行
方法2:
sed -n '1~2p' test.txt #奇数行
sed -n '2~2p' test.txt #偶数行
6.打印匹配字符串的下一行
grep -A 1 SCC URFILE
sed -n '/SCC/{n;p}' URFILE
awk '/SCC/{getline; print}' URFILE