一、替换文本:

##1
sed -i 's/disabled=true/disabled=false/' /etc/fdfs/storage.conf
##2
sed -i 's/base_path=\/home\/yuqing\/fastdfs/base_path=\/fdfs\/storage/' /etc/fdfs/storage.conf
##3
echo "Enter Tracker_IP : "
read Tracker_IP
echo "$Tracker_IP"
sed -i "/tracker_server/ s/192.168.209.121/$Tracker_IP/" /etc/fdfs/storage.conf
##4 假设上面的tracker_server在源文件里的值不是固定的。应改成以下的写法:
echo "Enter Tracker_IP : "
read Tracker_IP
echo "$Tracker_IP"
sed -i "/tracker_server/ s/\(.*=\).*/\1$Tracker_IP/" /etc/fdfs/storage.conf

## 这样写法是不正确的 :
sed -i "s/tracker_server=192.168.209.121/tracker_server=$Tracker_IP/" /etc/fdfs/storage.conf

二、插入文本:

下面命令能够在b_IPadress 192.168.1.188该行后插入指定的一行或多行文本
sed -i '/b_IPadress 192.168.1.188/a\test123' /root/my/myBin/sbin/test.config
sed -i '/b_IPadress 192.168.1.188/s/$/\nline1\nline2/' /root/my/myBin/sbin/test.config
sed -i '/b_IPadress 192.168.1.188/a\test123\n123\n123\n123' /root/my/myBin/sbin/test.config

假设把中间的a换成i则是在b_IPadress 192.168.1.188这一行前面插入多行

三、单引號与双引號:

单引號是强引用,引號里的值是什么,变量的值就是什么;
双引號是弱引用。引號里的值若再包括变量,那在赋值的时候,全部这些变量就被马上替换了。

比如:
echo "who am i:$LOGNAME" 结果:who am i:yeexun
echo "who am i:'$LOGNAME'" 结果:who am i:'yeexun'
echo "who am i:"$LOGNAME"" 结果:who am i:yeexun

echo 'who am i:$LOGNAME' 结果:who am i:$LOGNAME
echo 'who am i:"$LOGNAME"' 结果:who am i:"$LOGNAME"
echo 'who am i:'$LOGNAME'' 结果:who am i:yeexun

四、依据字符串获取当前行号并赋给一变量,然后依据获得的变量行号插入文本

1、获取行号赋值变量
myline=$(awk '/test123/ {print NR}' /root/my/myBin/sbin/test.config)
2、依据行号变量插入文本
sed -i '3s/$/&\a123/' a.txt
sed -i ''$myline's/$/&\a\nupstream fdfs_group1 {\n  server '$tempvar':8080;/' /root/my/myBin/sbin/test.config
sed ‘3a 123’ 1.txt
sed -i ''$myline'a\nupstream fdfs_group1 {\n  server '$tempvar':8080;' /root/my/myBin/sbin/test.config

五、变量的运算

应把运算放入方括号内
已知变量myline,该变量加2应写为:$[myline+2]

六、替换第几次出现的某个字符串的值

无限制:
sed -e ':a;/\(.*ABC\)\{3\}/{s/ABC/DEF/3;q};N;b a'
ABC表示替换前的数据,DEF是替换后的数据,3是第几次出现

有限制(如:title abcdefg。不能有=。仅仅能为空格)
替换指定行的数据:sed '0,/title/ s/\(title \).*/\1hello/' urfile
当中0表示在文本中第一次出现

七、替换指定行的数据

sed -i '2c\storage_server_port=11111' /root/my/myBin/snbin/temp2

八、变量保存文件总行数

temp=`grep -c . /root/my/myBin/snbin/temp2`

九、删除文件最后几行

删除最后一行:sed -e '$d' file
删除最后几行:用for循环加上面的语句

十、其他
shell赋值时。等号前后不能有空格
if条件中应这样: if 空格 [ 空格$tempvar0空格==空格"N"空格 ]
基础知识:http://bbs.chinaunix.net/thread-452942-1-1.html

转载于:https://www.cnblogs.com/mengfanrong/p/5244793.html

shell脚本编写汇集相关推荐

  1. shell 脚本编写 if else then

    shell 脚本编写 if else then if ....; then .... elif ....; then .... else .... fi 大多数情况下,可以使用测试命令来对条件进行测试 ...

  2. Shell awk文本处理,shell脚本编写

    Shell awk文本处理,shell脚本编写 一:内容包含awk.变量.运算符.if多分支 <a>语法糖: awk [options] 'commands' files option - ...

  3. 7. Shell 脚本编写

    7. Shell 脚本编写 1.提示用户输入一个字符串,如果是 hello,打出 yes,并每秒输出 "hello,world",否则就输出 no,实现如下: #!/bin/bas ...

  4. shell脚本编写遇到的问题--循环

    shell脚本编写遇到的问题 0 背景 工作中需要修补数据,大概半年的数据;跑数据是scala脚本+python脚本,如果手动补充数据,需要运行180次- 于是,shell脚本搞起来- 1 规划思路 ...

  5. datetime报错 sql脚本_Linux中Mysql数据库备份shell脚本编写实例

    学了段时间的Linux,也学习了shell脚本编写的基本命令与语法,现做一个综合案例来详细讲解. 要求:1).每天凌晨备份数据库shaoxiao到/data/backup/db中 2).备份开始和备份 ...

  6. Linux系统一键安全加固shell脚本编写思路

    本次分享一下个人在对Linux系统一键安全加固shell脚本编写时的一些思路: Linux系统一键安全加固shell脚本编写思路 1.编写须知 1.1 脚本使用说明 1.2 主要功能说明: 1.3隐藏 ...

  7. linux脚本设计菜单,菜单式shell脚本编写

    用shell脚本编写有以下的功能: Syste Manage 1.show the user //显示登陆系统用户以及动作. 2.test the network //网络测试 3.show the ...

  8. Linux编写脚本nsum求和,详解Linux Shell脚本编写技巧,附实例说明

    原标题:详解Linux Shell脚本编写技巧,附实例说明 Linux Shell是一个很难的知识板块.虽然大家都认真学,基本的语法很都掌握,但有需求时,很难直接上手编程,要么写了很久,要么写不好!对 ...

  9. shell脚本编写思路和实例讲解

    shell脚本编写思路和实例讲解 前言 常听见身边有很多学习shell脚本的朋友抱怨shell脚本不好写,好不容易写出来的脚本一直报错,符号空格又太多,错了一个就无法运行还不好排查错误. 客观讲she ...

最新文章

  1. 小程序中获取高度以及设备的方法
  2. Struts2文件上传
  3. 3.5.5 CSMA/CD 协议
  4. Android -- DragDrop
  5. c语言除法效率问题,【图片】今天写几个性能测试,为什么C语言跑得这么慢呢??【c语言吧】_百度贴吧...
  6. 全部省市县数据库(SQL脚本)以及简单递归查询
  7. wifi怎么设置找不到服务器,无线网 登入ip找不到服务器
  8. JavaGUI版本销售管理系统
  9. MySQL 支持的数据类型
  10. npm init @vitejs/app 到底干了什么
  11. adobe黑体std能商用_请问Adobe 黑体 Std R能免费商用吗?
  12. $java_home位置_关于java home:echo $ JAVA_HOME不返回jdk位置
  13. Docker设置DNS
  14. SAP 财务月结之 外币评估(TCODE:FAGL_FC_VAL,S4版本用 FAGL_FCV)<转载>
  15. 厦大1394 抛硬币
  16. 计算机中公式提取用什么函数,技巧:Excel快速从文本中提取单元格中的数字函数公式...
  17. defaultdict用法详解
  18. 基于MATLAB的人民币识别系统
  19. 数字小写到英文大写的转换
  20. HFS+ vs APFS

热门文章

  1. route map应用策略路由(下)
  2. AuthFailed at /social-auth/complete/facebook/
  3. ubuntu中,txt导入mysql数据库文件
  4. ubuntu右键打开终端(Open Terminal Here)失效
  5. mysql bitmap redis_Redis中bitmap的妙用
  6. python桌面开发吐血_Python3环境(Windows10)单独配置Spyder——记录我的吐血之路...
  7. inode linux x64,又一次在64位ubuntu上安装iNode
  8. iview地区加载_LoadingBar 加载进度条
  9. oracle expdp ora39070,expdp时出错:ORA-39070: Unable to open the log file.
  10. 【leetcode】109. Convert Sorted List to Binary Search Tree