sed命令:
文本处理三剑客:
- grep,egrep,fgrep:文本过滤器
- sed:stream EDitor,刘编辑器,行
- awk:文本格式化工具,报告生成器
- sed [option]…’script’ [input-file]…
- script:
地址定界编辑命令
- 常用选项:
- -n:不输出模式空间中的内容至屏幕;
- -e script,–expression=script 多点编辑
- -f /path/to/sed_script_file 命令多时可以用 从文件中取出命令
- 每行一个编辑命令;
- -r:–regexp-extended:支持使用扩展的正则表达式;
- -i [suffix],–in-place[=suffix]:直接编辑原文件;
- sed -e ‘s@^#[[:space:]]*@@’ -e ‘/^UUID/d’ /etc/fstab
地址定界:
- 1.空地址:对全文进行处理;
- 2.单地址:
- #:指定行
- /pattern/: 被此模式匹配到的每一行;
- 3.地址范围
- #,#
- #,+#
- #,/pat1/
- /pat1/,/pat2/
- $ 标识最后一行
- 4.步进:~
- 1~2:所有奇数行
- 2~2:所有偶数行
编辑命令:
- d:删除
- p:显示模式空间中的内容;
- a:\text:在匹配到的行 下一行追加内容,支持使用\n 实现多行插入
- sed ‘3a \new line\nanother new line’ /etc/fstab
- i:\text:在匹配到的行 上一行追加内容,支持使用\n 实现多行插入
- sed ‘/^UUIDa \new line’ /etc/passed
- c:匹配到的行替换为给出的内容
- w /path/to/somefile 保存范围内的内容到指定的路径
- r:/path/from/somefile 读取指定位置的文件至当前文件被模式匹配到的行后面,文件合并;
- =:为模式匹配到的行打印行号;
- !:条件取反;
- 地址的后面,命令的前面
- s///:查找替换,其分隔符可自行指定,常用的有s@@@,s###
- 替换标记
- g:全局替换
- w:/path/to/somefile 将替换成功的结果保存至指定文件中
- p:显示替换成功的行
高级编辑命令:
- h:把模式空间中的内容覆盖至保持空间中;
- H:把模式空间中的内容追加至保持空间中;
- g:把保持空间中的内容覆盖至模式空间中;
- G:把保持空间中的内容追加至模式空间中
- x:把模式空间中的内容与保持空间中的内容互换;
- N:追加读取匹配到的行的下一行至模式空间中;
- n:覆盖读取匹配到的行的下一行至模式空间中;
- d:删除模式空间中的行
- D:删除多行模式空间中的所有行
示例:
sed -n ‘n;p’ file; 显示偶数行
sed ‘1!G;h;$!d’ 逆序显示文件的内容
sed ‘$!d’ file 取出最后一行
sed ‘$!N;$!D’ file 取出文件后两行
sed ‘/^$/d;G’ file 删除原有的所有空白行,而后为所有的非空白行添加一个空白行
sed ‘n;d’ file 显示奇数行
sed ‘G’ file 在原有的每行后添加一个空白行
本文来自投稿,不代表Linux运维部落立场,如若转载,请注明出处:http://www.178linux.com/100527
评论列表(1条)
建议多练习命令的各种用法。sed各种用法 在企业里面用的比较多