您的位置:首页 > 运维架构 > Linux

LINUX系统学习笔记命令sed

2017-11-22 00:00 621 查看
sed是一种流编辑器,它是文本处理中非常中的工具,能够完美的配合正则表达式使用,功能不同凡响。处理时,把当前处理的行存储在临时缓冲区中,称为“模式空间”(pattern space),接着用sed命令处理缓冲区中的内容,处理完成后,把缓冲区的内容送往屏幕。接着处理下一行,这样不断重复,直到文件末尾。文件内容并没有 改变,除非你使用重定向存储输出。Sed主要用来自动编辑一个或多个文件;简化对文件的反复操作;编写转换程序等。

一、sed的选项、命令、替换标记

命令格式:

sed [options] 'command' file(s)

sed [options] -f scriptfile file(s)

1.选项



2.参数

文件:指定待处理的文本文件列表。
3.sed命令



4.sed替换标记



5.sed元字符集



二、sed用法实例

1.替换文本中的字符串:

sed 's/book/books/' file
-n选项和p命令一起使用表示只打印那些发生替换的行:

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
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: