sed 常见用法

sed 常见用法

(1)添加注释

Shell代码  

  1. sed -i 's/^\(77\)/# \1/' /tmp/abc/test.txt  

 

注释掉指定行:

Shell代码  

  1. sed -e '2,3{s/^/#/}' test.txt  

 说明:注释掉第2行和第三行

 

删除c语言的注释(//)

Shell代码  

  1. sed -e 's/\/\/\(.*\)/\1/g' fenzhifa.c  

 

 

(2)删除注释

Shell代码  

  1. sed -i 's/^#[[:space:]]*//'  /tmp/abc/test.txt  

 

 

(3)获取脚本所在目录

shell脚本文件名称:loc.sh

内容:

Shell代码  

  1. #!/bin/sh  
  2.   
  3. #---------------------------- locate this_dir ----------------start  
  4. ## this file path  
  5. this_dir=`pwd`  
  6. dirname $0|grep "^/" >/dev/null  
  7. if [ $? -eq 0 ];then  
  8.     this_dir=`dirname $0`  
  9. else  
  10.         dirname $0 | grep "^\.$" >/dev/null  
  11.         if [ $? -ne 0 ];then  
  12.                 this_dir=`dirname $0|sed "s#^#${this_dir}/#"`  
  13.         fi  
  14. fi  
  15. echo $this_dir  
  16. #---------------------------- locate this_dir ----------------end  

 执行:

ctier@allinone-yunyingyong-2-v-o:/tmp/abc/ccc$ ./loc.sh 

/tmp/abc/ccc

 

(4)在键值对后面增加export

Shell代码  

  1. sed -e "s#\(.*\)=.*#&\nexport \1#" prop.txt  

 prop.txt的内容如下:

name=whuang

age=27

 

运行结果:

ctier@allinone-yunyingyong-chanjet02-v-o:/tmp/abc$ sed -e "s#\(.*\)=.*#&\nexport \1#" prop.txt 

name=whuang

export name

age=27

export age

 

对于path变量

ctier@allinone-yunyingyong-chanjet02-v-o:/tmp/abc$ sed "s#\(.*\)=\(.*\)#if [ x\"$\1\" = x ];then\n\t&\nelse\n\t&:\"$\1\"\nfi\nexport \1#" prop.txt 

if [ x"$name" = x ];then

name=whuang

else

name=whuang:"$name"

fi

export name

if [ x"$age" = x ];then

age=27

else

age=27:"$age"

fi

export age


 

 

 

(5)解决中标麒麟注册服务失败的问题


#!/bin/sh

if [ `id -u` -ne 0 ];then

         echo "Please rerun this script as root ."

         exit 2

fi

if [ -z "$1"  ];then

    echo "please specify patch path:"

         exit 2

fi

 

#-------------------------------- function start ------------------------------------------

delete_Required_Start()

{

         filePath="$1"

         if [ -f "$filePath" ];then

                   sed -i '2,10{/Required-Start/d;}'  "$filePath"

                   sed -i '2,10{/Required-Stop/d;}'  "$filePath"

         fi

}

#-------------------------------- function end ------------------------------------------

 

 

this_dir=`pwd`

patch_path="$1"

ls "$patch_path/patch.sh" >/dev/null 2>&1

if [ $? -eq 0 ];then

         patch_path="$patch_path/patch"

fi

server_bin="$patch_path/patch/build/SERVER/bin"

tomcat_bin="$patch_path/patch/build/STOOLS/tomcat/bin"

cd "$server_bin"

for ii in `ls *7d`;do

         delete_Required_Start "$ii"

done

 

cd "$tomcat_bin"

for ii in `ls *7d`;do

         delete_Required_Start "$ii"

done

 

sed -i 's/log_warning_message\([ ]*(\)/log_warning_msg\1/' /lib/lsb/init-functions

 

cd "$this_dir"

时间: 2025-01-16 09:50:11

sed 常见用法的相关文章

php中的curl使用入门教程和常见用法实例

[目录] php中的curl使用入门教程和常见用法实例 一.curl的优势 二.curl的简单使用步骤 三.错误处理 四.获取curl请求的具体信息 五.使用curl发送post请求 六.文件上传 七.文件下载 八.http 验证 九.通过代理发送请求 十.发送json数据 十一.cURL批处理(multi cURL) 十二.总结 起先cURL是做为一种命令行工具设计出来的,比较幸运的是,php也支持cURL了.通过cURL这个利器,我们能在php程序中自由地发送 HTTP请求到某个url来获取

META标签的常见用法

最近,Danny Sullivan谈到了如何处理的搜索引擎meta标签的问题,以下是一些关于在Google中如何处理这些问题的答案. 多内容数值 我们建议你把所有的Meta标签内容放在一个meta中.这将使得meta标签更易于读取并降低发生错误的概率.例如: <META NAME="ROBOTS" C><metaname="robots"c> 如果一行包含对个meta标签,我们将会累加标签的内容,例如,我们会将 <META NAME=&

grep命令常见用法

grep命令常见用法 (1)通过端口号找进程 占用8005端口的进程 netstat -anp |grep ":8005[ ]\+"|awk -F" "   {'print $7'}   占用49790端口的进程 netstat -anp |grep ":49790[ ]\+"|awk -F" "   {'print $7'}   占用48713端口的进程 netstat -anp |grep ":48713[ ]\

正则表达式介绍及常见用法

正则表达式(Regular Expression),又称正规表示法.常规表示法,在实际的软件开发项目中经常会被使用到.它使用单个字符串来描述.匹配并获取一系列符合某个句法规则的结果.   正则表达式起源 1956年,数学家Stephen Kleene在Warren McCulloch和Walter Pitts早期神经系统工作的基础上,设计出了一个数学符号体系--regular sets(规则的集合),这个东西很快被计算机科学家用于编译器的扫描或词法分析.由于正则表达式强大的文本处理能力,很快被应

Java枚举的七种常见用法总结(必看)_java

用法一:常量 在JDK1.5之前,我们定义常量都是:publicstaticfianl.....现在好了,有了枚举,可以把相关的常量分组到一个枚举类型里,而且枚举提供了比常量更多的方法. Java代码 public enum Color { RED, GREEN, BLANK, YELLOW } 用法二:switch JDK1.6之前的switch语句只支持int,char,enum类型,使用枚举,能让我们的代码可读性更强. Java代码 enum Signal { GREEN, YELLOW,

Android编程开发中ListView的常见用法分析_Android

本文实例讲述了Android编程开发中ListView的常见用法.分享给大家供大家参考,具体如下: 一.ListView的使用步骤 ListView的使用通常有以下三个要素: (1)ListView中每个条目的布局; (2)填充进入ListView中的内容; (3)将内容与页面进行整合的Adapter. 因此,使用ListView也通常有以下三个步骤: (1)创建ListView条目的布局文件(或使用Android SDK提供的布局); (2)创建填充进入ListView中的内容,如字符串.图片

JS数组的常见用法实例_javascript技巧

本文实例讲述了JS数组的常见用法.分享给大家供大家参考.具体方法如下: 复制代码 代码如下: <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">  <html xmlns="http://www.w3.org/1999/xhtml">

JavaScript lodash常见用法系列小结_javascript技巧

lodash一开始是Underscore.js库的一个fork,因为和其他(Underscore.js的)贡献者意见相左.John-David Dalton的最初目标,是提供更多"一致的跨浏览器行为--,并改善性能".之后,该项目在现有成功的基础之上取得了更大的成果,并于一月份发布了3.0版本. 下面给大家说下javascript lodash知识,具体详情如下所示: 1 _.compact用法 _.compact([0, 1, false, 2, '', 3,'mm']); var

Linux的系统监控工具dstat常见用法总结

1) 工具说明dstat是一个用来替换 vmstat,iostat  netstat,nfsstat和ifstat这些命令的工具, 是一个全能系统信息统计工具. 与sysstat相比,  dstat拥有一个彩色的界面, 在手动观察性能状况时, 数据比较显眼容易观察; 而且dstat支持即时刷新, 譬如输入dstat 3,  即每三秒收集一次, 但最新的数据都会每秒刷新显示. 和sysstat相同的是, dstat也可以收集指定的性能资源. 2) 软件安装 代码如下:# cd /tmp# rz #