博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
sed 常见用法
阅读量:6576 次
发布时间:2019-06-24

本文共 2278 字,大约阅读时间需要 7 分钟。

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"

转载地址:http://blwno.baihongyu.com/

你可能感兴趣的文章
ubunto应用软件
查看>>
wireshark----教你如何抓包
查看>>
从txt中读入数据到数组中(fscanf)
查看>>
jquery中的事件与动画
查看>>
XPO学习(3)----数据查询
查看>>
java.util报错
查看>>
C++学习笔记03
查看>>
Object.preventExtensions()使用技巧
查看>>
magento url rewrite规则
查看>>
potala(5)——Unit Test and Cache
查看>>
计算几何-Andrew法-凸包
查看>>
在java中String类为什么要设计成final
查看>>
前端框架——Jquery——基础篇7__工具函数(Utils)
查看>>
日常学习随笔-数组、单链表、双链表三种形式实现队列结构的基本操作(源码注释)...
查看>>
select 中添加option的注意
查看>>
Codeforces #369 div2 D.Directed Roads
查看>>
vijos1153猫狗大战
查看>>
炮(棋盘DP)
查看>>
改造二叉树 (长乐一中模拟赛day2T1)
查看>>
Cloud Foundry 在 Azure 中国正式发布
查看>>