LINUX系统学习笔记命令sed
2017-11-22 00:00
621 查看
sed是一种流编辑器,它是文本处理中非常中的工具,能够完美的配合正则表达式使用,功能不同凡响。处理时,把当前处理的行存储在临时缓冲区中,称为“模式空间”(pattern space),接着用sed命令处理缓冲区中的内容,处理完成后,把缓冲区的内容送往屏幕。接着处理下一行,这样不断重复,直到文件末尾。文件内容并没有 改变,除非你使用重定向存储输出。Sed主要用来自动编辑一个或多个文件;简化对文件的反复操作;编写转换程序等。
sed [options] 'command' file(s)
sed [options] -f scriptfile file(s)
1.选项
2.参数
文件:指定待处理的文本文件列表。
3.sed命令
4.sed替换标记
5.sed元字符集
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
一、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
相关文章推荐
- Linux学习笔记3_文件系统常用命令
- Linux 学习笔记_9_文件系统管理_2_文件系统管理命令及案例分析
- LINUX学习笔记1——LINUX系统命令
- Linux Sed命令学习笔记
- linux学习笔记3:系统命令
- linux命令sed学习笔记
- 嵌入式开发之Linux基础第二天学习笔记 linux系统命令(一)&其他
- 嵌入式开发之Linux基础第三天学习笔记 linux系统命令(二)
- Linux系统命令及Shell脚本学习笔记二:用户管理
- linux系统管理学习笔记之一-------linux解压缩命令
- Linux学习笔记--top命令(监控linux系统状况的命令)
- Linux学习笔记之网络通信命令、系统关机、sehll应用技巧....
- Linux学习笔记——Linux系统基础与常见命令
- Linux系统命令及Shell脚本学习笔记五:字符处理
- 学习笔记 --- LINUX 应用调试之使用strace命令追踪系统调用
- 【学习笔记】Linux基本操作(5)--- Linux系统常用命令
- Red Hat linux 6.5 学习使用笔记《一》linux系统常用命令
- linux查看系统信息软件安装信息命令学习笔记
- 【linux学习笔记之一】linux系统目录结构以及常用系统命令
- Linux学习笔记:2.文件系统的管理命令(2)