zoukankan      html  css  js  c++  java
  • sed命令

    sed: Stream EDitor, 行编辑器;
    	用法:
    	sed [option]... 'script' inputfile...
    		script: 
    			'地址命令'
    
    		常用选项:
    			-n:不输出模式中的内容至屏幕;
    			-e: 多点编辑;
    			-f /PATH/TO/SCRIPT_FILE: 从指定文件中读取编辑脚本;
    			-r: 支持使用扩展正则表达式;
    			-i: 原处编辑;
    
    			地址定界:
    				(1) 不给地址:对全文进行处理;
    				(2) 单地址:
    					#: 指定的行;
    					/pattern/:被此处模式所能够匹配到的每一行;
    				(3) 地址范围:
    					#,#
    					#,+#
    					/pat1/,/pat2/
    					#,/pat1/
    					$ :最后一行
    				(4) ~:步进
    					1~2
    					2~2
    
    			编辑命令:
    				d: 删除
    				p: 显示模式空间中的内容
    				a 	ext:在行后面追加文本;支持使用
    实现多行追加;
    				i 	ext:在行前面插入文本;支持使用
    实现多行插入;
    				c 	ext:替换行为单行或多行文本;
    				w /path/to/somefile: 保存模式空间匹配到的行至指定文件中;
    				r /path/from/somefile:读取指定文件的文本流至模式空间中匹配到的行的行后;
    				=: 为模式空间中的行打印行号;
    				!: 取反条件; 
    				s///:支持使用其它分隔符,s@@@,s###;
    					替换标记:
    						g: 行内全局替换;
    						p: 显示替换成功的行;
    						w /PATH/TO/SOMEFILE:将替换成功的结果保存至指定文件中;
    
    					练习1:删除/boot/grub/grub.conf文件中所有以空白开头的行行首的空白字符;
    						~]# sed 's@^[[:space:]]+@@' /etc/grub2.cfg
    
    					练习2:删除/etc/fstab文件中所有以#开头,后面至少跟一个空白字符的行的行首的#和空白字符;
    						~]# sed 's@^#[[:space:]]+@@' /etc/fstab
    
    					练习3:echo一个绝对路径给sed命令,取出其基名;
    						~]# echo "/etc/sysconfig/" | sed 's@[^/]+/?$@@'
    						或者echo '/etc/sysconfig/'| sed -r 's@[^/]+/?$@@' 
    				高级编辑命令:
    					h: 把模式空间中的内容覆盖至保持空间中;
    					H:把模式空间中的内容追加至保持空间中;
    					g: 从保持空间取出数据覆盖至模式空间;
    					G:从保持空间取出内容追加至模式空间;
    					x: 把模式空间中的内容与保持空间中的内容进行互换;
    					n: 读取匹配到的行的下一行至模式空间;
    					N:追加匹配到的行的下一行至模式空间;
    					d: 删除模式空间中的行;
    					D:删除多行模式空间中的所有行;
    
    					sed -n 'n;p' FILE:显示偶数行
    					sed '1!G;h;$!d' FILE:逆向显示文件内容
    					sed '$!N;$!D' FILE: 取出文件后两行;
    					sed '$!d' FILE:取出文件最后一行;
    					sed 'G' FILE: 在原来的每一行后面添加一空白行;
    					sed '/^$/d;G' FILE: 删除原有的空白行;为所有的非空白行后加空白行;
    					sed 'n;d' FILE: 显示奇数行;
    					sed -n '1!G;h;$p' FILE: 逆向显示文件中的每一行;
    练习:
    	如何备份过去一周内,/etc目录下被修改的文件
    

      

  • 相关阅读:
    【转】CDH rpm+http方式离线部署
    处理CDH环境Hadoop:NameNode is not formatted
    使用 prometheus-operator 监控 Kubernetes 集群【转】
    Prometheus监控k8s(10)-PrometheusOperator-更优雅的Prometheus部署【转】
    kali 网络配置作死踩坑
    01 校招信息收集渠道
    Pypora打开markdown(md)文件保存为PDF文件
    Github上的md文件查看后下载PDF文档方法(将HTML文件保存为PDF格式)
    利用后裔采集器快速采集文本数据(以京东为例)
    office安装公式编辑器mathtype6.9及mathtype过期解决方案
  • 原文地址:https://www.cnblogs.com/liuyuanq/p/10014745.html
Copyright © 2011-2022 走看看