网站建设服务8,华为企业邮箱,实用写作网站,建设展示型网站公司哪家好一、sed命令解析
1、sed工具概述 Stream EDitor#xff0c;流式编辑器 - 非交互#xff0c;基于模式匹配过滤及修改文本 - 逐行处理#xff0c;并将结果输出到屏幕 - 可实现对文本的输出、删除、替换、复制、剪切、导入、导出等操作 2、命令格式解析 主要用法#xff1a; …一、sed命令解析
1、sed工具概述 Stream EDitor流式编辑器 - 非交互基于模式匹配过滤及修改文本 - 逐行处理并将结果输出到屏幕 - 可实现对文本的输出、删除、替换、复制、剪切、导入、导出等操作 2、命令格式解析 主要用法 - 格式1前置命令 | sed [选项] ‘编辑指令’ - 格式2sed [选项] ‘编辑指令’ 文件 … … 条件可以是行号或 /正则/ - 行号可以使用单个数字表示单行 - 或者35表示连续的多行 - 省略条件则默认逐行处理全部文本 - 匹配正则时需要使用// 常见命令选项
选项释义-n屏蔽默认输出-i直接修改源文件-r支持扩展正则
二、常见处理操作示例
1、输出文本§
sed -n /^123/p file.txt #仅列出123开头的行
sed -n 4p file.txt #输出第4行
sed -n 2,4p file.txt #输出第2-4行
sed -n p file.txt #输出全部
sed -n /ab/p file.txt #输出包含root的行
sed -n $ file.txt #输出文件的行数
sed -n 1~2p file.txt #打印奇数行
sed -n 2~2p file.txt #打印偶数行2、删除文本(d)
sed 2,4d file.txt #删除第2-4行
sed /ab/d file.txt #删除所有包含ab的行
sed /ab/!d file.txt #删除不包含ab的行!符号表示取反
sed /^file/d file.txt #删除开头为file的行
sed $d file.txt #删除文件的最后一行
sed /^$/d file.txt #删除所有空行
注意此案例只做输出不修改原文件修改原文件需要加-i选项3、替换关键词(s)
sed s/ab/AB/ file.txt #将每行中第一个ab替换为AB
sed s/123/456/2 file.txt #将每行中第二个123替换为456
sed s/123/XXX/g file.txt #将所有的123替换为XXX
sed s/123//g file.txt #将所有的123都删除替换成空字符串
sed 6,8s/^/#/ file.txt #为6-8行加注释
sed s/^#\*/\*/ file.txt #去掉开头为#*的#号
注意此案例只做输出不修改原文件修改原文件需要加-i选项4、替换行c
sed c 123456 file.txt #将所有行内容替换为123456
sed /IPADDR/c IPADDR10.0.0.0 file.txt #筛选IPADDR关键字的行替换
sed /#/c fileroot file.txt #替换包含#号的行替换
sed 3c xxxxx file.txt #替换第三行内容
注意此案例只做输出不修改原文件修改原文件需要加-i选项三、sed文本块处理
1、文本块处理动作
操作符用途指令示例i行前插入文本2iYY 在第2行之前添加文本行“YY” 4,7iYY 在第4-7行的每一行前添加文本行a行后插入文本2aYY 在第2行之后添加文本/^XX/aYY 在以XX开头的行之后添加文本r导入指令2cYY 将第2行的内容修改为YYw文件另存为|导出文件内容
2、行前插入i
sed 2i ###### test.txt #在第2行前插入单行文本
sed /aaa/i abc test.txt #在包含aaa的行前插入单行文本
sed /aaa/i abc\n### test.txt #在包含aaa的行前插入2行文本多行需要加换行符\n
注意此案例只做输出不修改原文件修改原文件需要加-i选项3、行后追加a
sed 2a ###### test.txt #在第2行后追加单行文本
sed /aaa/a abc test.txt #在包含aaa的行后追加单行文本
sed /aaa/a abc\n### test.txt #在包含aaa的行后追加2行文本多行需要加换行符\n
注意此案例只做输出不修改原文件修改原文件需要加-i选项4、导入r
sed 2r /root/file.txt test.txt #在第二行之后导入file.txt文本到test.txt文件
sed r /root/file.txt test.txt #在每一行后导入file.txt文本到test.txt文件
sed /AAA/r /root/file.txt test.txt #在包含AAA的行后导入file.txt文本到test.txt文件
注意此案例只做输出不修改原文件修改原文件需要加-i选项5、导出w
sed w copy_test.txt test.txt #将test文件所有内容另存为一个新文件
sed /AAA/w AAA_test.txt test.txt #将test文件中包含AAA的行另存为新的文件
sed 2,3w line.txt test.txt #将test文件的2-3行另存为新的文件