KEY="所要搜索的关键字符串"

FullPath=所要搜索的文件的路径

str=“要替换行的字符串"

  • 根据关键字符串定位行号:line=`sed -n '/'"$KEY"'/=' $FullPath`

    • 打印匹配行的方法: sed -n -e '/关键词/p' 文件全路径
    • 打印行号的方法:  sed -n -e '/关键词/=' 文件全路径
    • 打印匹配行与行号的方法: sed -n -e '/关键词/p' -e '/关键词/=' 文件全路径
  • 判断line是否为空,为空时return,else则替换:if [  "$line" == "" ]; then   return;
  • 替换字符串:sed -i "" "${line}s#.*#"$str"#" $FullPath
example:

line=`sed -n '/'"$KEY"'/=' $FullPath`
if [ "$line" == "" ]; then
echo "is Null"
return;
else
echo $line
sed -i "" "${line}s#.*#"$str"#" $FullPath
sed -i "" "${line}s/.*/ &/" $FullPath
fi

转载于:https://www.cnblogs.com/xuyC/p/6030898.html

Shell之根据关键字符串替换文件中的行相关推荐

  1. Linux 删除和替换文件中某些行的方法

    删除mol2格式文件中的title sed '/# weight/'d FragmentLibrary.mol2 #删除不保存 sed '/# weight/'d FragmentLibrary.mo ...

  2. golang 得到字符串在文件中的行号

    使用 scanner逐行迭代文件,增加每个循环的行数. 示例如下: f,err := os.Open(path) if err != nil {return 0,err } defer f.Close ...

  3. python循环删除包含字符串_删除包含完全字符串的文件中的行(Python)

    re.match匹配字符串开头的字符串 . 您可以在表达式中添加单词分隔符 name + r'\b' 但在你的情况下,重新是一种矫枉过正,简单的比较会做 name == line.partition( ...

  4. java 替换文件中的字符串

    import java.io.File; import java.io.FileInputStream; import java.io.IOException; import java.io.Prin ...

  5. 用python中re.sub()替换文件中指定字符串

    用python中re.sub()替换文件中指定字符串 1.正则表达式re.sub()的用法 sub(pattern,repl,string,count=0,flag=0) 1)pattern正则表达式 ...

  6. AIX下批量替换文件中的字符串 linux替换包含换行符的内容

    示例:将所有CPP文件中的__cplusplus替换为 __cplusplus_xsz perl -p -i -e "s/__cplusplus/__cplusplus_xsz/g" ...

  7. 使用node读取文件内容并且替换文件中的内容

    背景: 因项目上安全编码要求,需要对angular编译后的文件中的特殊字符进行处理. 解决方案: 1.使用shell脚本(没试过,对shell不熟悉,理论上可行): 2.使用Python: 3.使用n ...

  8. 用python替换文件中内容的两种方法

    目标:替换文件中的字符串内容 方法1:使用fileinput包 import fileinput for line in fileinput.input("要修改的文件名", in ...

  9. python替换文件内容_Python实现替换文件中指定内容的方法

    本文实例讲述了Python实现替换文件中指定内容的方法.分享给大家供大家参考,具体如下: 这里使用python编写的程序,实现如下功能:将文件中的指定子串 修改为 另外的子串 编写的python程序, ...

  10. linux中替换文件中的内容,linux下批量替换文件中的内容linux操作系统 -电脑资料...

    对于单个文件,使用sed命令很容易做到, grep命令可以查找单个文件或文件夹下文件中的内容,使用参数"r"或"-R"可以递归查找指定文件夹下的所有文件:参数& ...

最新文章

  1. 小程序之实现滚动加载
  2. Linux 内核已支持苹果
  3. 关于程序为什么要代码段,程序段
  4. jQuery中的DatePicker今天按钮不起作用
  5. c语言for循环语句java,C语言三种类型的循环语句
  6. php发送邮件,标题是乱码,php的mail函数发送UTF-8编码中文邮件时标题乱码怎么办?...
  7. Mysql 优化的一些要点
  8. python如何强制转换数据类型_python数据类型强制转换实例详解
  9. 自动化运维 python 批量监控服务器_1、python自动化运维——监测服务器状态
  10. iterm2 保存阿里云登陆并防止断开连接
  11. 增加RIL组件时编辑出现的问题
  12. java语言程式设计——异常处理语法 3
  13. 收藏!MySQL 面试必须掌握的 8 个知识点!
  14. BZOJ1251序列终结者——非旋转treap
  15. jq获取页面url后边带的参数
  16. fir.im Weekly - 工欲善其事,必先利其器
  17. php cpu飙高,PHP-FPM进程CPU 飙高的原因及解决方案
  18. 名编辑电子杂志大师教程 | 仿古书翻页
  19. 第一章 C语言程序设计概述
  20. 1.30.Flink SQL案例将Kafka数据写入hive

热门文章

  1. mapreduce 多种输入
  2. chromium的部署工具depot_tools和gclient
  3. 一个系统管理员的自白
  4. 2018双一流排名 计算机,2018年42所双一流大学本硕博录取人数排名,规模优势凸显!...
  5. nacos动态配置数据源_Sentinel使用Nacos存储规则及同步
  6. vscode 格式化某一段代码_vscode 如何自动格式化代码?
  7. AssetBundle的一些笔记
  8. Nginx源码分析 - 初探Nginx的架构(01)
  9. linux自定义全局命令
  10. java类转换异常,java.lang.ClassCastException: java.lang.Integer cannot be cast to java.lang.Long