`
Goldice
  • 浏览: 107407 次
  • 性别: Icon_minigender_1
  • 来自: 杭州
社区版块
存档分类
最新评论

Bash脚本: 根据关键字做替换

 
阅读更多

 

      根据某个文件的关键字做替换

 

#!/bin/bash

kv=`awk -F "=" '{ if(NF==2) print $1"="$2 }' ./zuanshi_servic_test.properties`

for kv in ${kv[@]};do
  k=`echo $kv | awk -F "=" '{print $1}'`
  v=`echo $kv | awk -F "=" '{print $2}' | awk -F "\r" '{print $1}'`
  sed -i "s@\${$k}@$v@g" `grep $k -rl ./src/test/resources/`
done

      原本打算将sed跟awk混合使用的,但是最后还是没成功,只好退而求其次,先将key-value保存到kv数组中,然后根据key依次替换对应文件。

      因为value中包含"\"等字符,所以原本使用的sed 's/XX/XX/g'无法正常使用,改为's@XX@XX@g'

另外学到了Bash中的for循环${kv[@]}

 

       另外一开始,脚本一致性就报错,但是看代码又看不出任何错误。最后才知道,原来这个脚本是通过svn windows客户端上传的,在Linux下需要通过dos2unix进行转换才能使用,而从代码上是看不出任何差别的。不能被表象迷惑啊。

 

 

 

 

 

 

分享到:
评论

相关推荐

    高级Bash脚本编程指南

    《高级Bash脚本编程指南》是一本专为有志于深入掌握Bash脚本编程技术的读者量身打造的教程。Bash(Bourne-Again SHell)是Linux和Unix系统中最常用的命令行解释器,也是编写系统管理脚本的首选工具。通过学习本书,...

    shell脚本学习,高级Bash脚本

    Bash(Bourne-Again SHell)是Unix/Linux系统中最常用的Shell,因此深入理解并掌握高级Bash脚本编写技巧对于提升工作效率至关重要。 **一、Bash脚本基础** 1. **变量**:在Bash脚本中,变量用于存储数据。声明变量...

    高级Bash 脚本编程指南 PDF

    **高级Bash脚本编程指南**是一本专为有经验的Linux或Unix用户设计的教程,旨在深入探讨Bash shell脚本的高级概念和技术。Bash(Bourne-Again SHell)是大多数Linux和Unix系统上的默认命令行解释器,它提供了丰富的...

    new-高级 Bash 脚本编程指南

    作为一个初学者,了解并掌握Bash脚本编程能极大地提高你的系统管理效率。下面,我们将深入探讨Bash脚本的基础和高级概念。 ### 1. Bash脚本基础 - **变量**:Bash脚本中的变量用于存储数据,可以是数字、字符串或...

    中文版高级Bash脚本编程指南

    **高级Bash脚本编程指南**是一份专为学习Shell编程设计的中文资源,它深入讲解了Bash shell脚本的高级用法和技术,对于想要提升Linux或Unix系统自动化任务处理能力的用户来说,是一份不可多得的教程。本文将依据这份...

    高级Bash脚本编程指南.rar

    **高级Bash脚本编程指南** Bash(Bourne-Again SHell)是Linux和Unix系统中最常用的一种命令行解释器,它为用户提供了编写脚本的强大工具。本指南将深入探讨Bash脚本编程的高级技巧和概念,帮助你提升在Linux环境中...

    Advanced Bash-Scripting Guide <>

    在Perl 脚本中使用eval 命令来强制变量替换 11-15. 使用set 来改变脚本的位置参数 11-16. 重新分配位置参数 11-17. Unset 一个变量 11-18. 使用export 命令传递一个变量到一个内嵌awk 的脚本中 11-19. 使用getopts ...

    Bash_shell学习笔记

    - 在Bash脚本中使用`#`符号来进行单行注释,对于多行注释可以使用连续的`#`符号。此外,可以通过执行`help`命令获取内置命令的帮助信息。 ### 5. 变量与数组 - **变量分类**: - 环境变量:在当前会话期间保持不变...

    bash programming

    - 参数替换:可以通过特定语法改变参数的值或格式。 - **引用**:使用单引号(`'`)或双引号(`"`)来引用字符串,不同引用方式对变量展开有不同影响。 - **测试**:使用`[ ]`或`[[ ]]`来进行条件测试,支持文件测试...

    Bash_reference_manual_2014_bashshell_源码.zip

    4. 脚本优化:通过阅读源码,学习如何编写高效、可维护的Bash脚本。 五、高级话题 1. 函数库:利用bashrc和bash_profile文件,定制用户环境。 2. 环境变量:如何设置和管理全局环境,影响所有Bash会话。 3. 错误...

    详细的Bash介绍

    Bash脚本在新进程中运行,所以不会改变其他进程或原始Shell中的变量。 **变量特性** 1. **变量类型** Bash没有像C语言那样的数据类型。所有变量默认为字符串,可以存储任何非空字符序列。 2. **变量赋值** 变量...

    Bash shell 学习笔记

    - **注释**:在Bash脚本中,使用`#`符号来添加注释,以便解释脚本的工作原理。 - **帮助**:可以通过内置命令如`help`来获取Bash内置命令的帮助信息,或者使用`man bash`查看Bash的手册页面。 #### 5. 变量与数组 -...

    详解Bash命令行处理

    根据原文件提供的内容,本文将详细介绍Bash命令行处理的十二个步骤,同时也会涵盖一些高级话题,如引号的使用、`eval`命令的应用以及命令优先级等。 #### 一、Bash命令行处理的12个步骤 ##### 1. 将命令行分成由...

    Linux_Shell_Scripting_with_Bash

    一个Bash脚本通常以`#!/bin/bash`开始,告知系统使用Bash解释器来执行脚本。之后,可以定义变量、函数,并编写控制流结构。脚本的最后可能包含清理或退出指令。 七、输入/输出重定向 Bash允许通过`&gt;`、`和`&gt;&gt;`符号...

    Advanced.Bash-Scripting.Guide.Cn.txt

    ### 高级Bash脚本指南 #### 一、引言与基础知识 在《高级Bash脚本指南》中,作者Mendel Cooper系统地介绍了如何深入理解和掌握Bash脚本编程技术。Bash(Bourne Again Shell)是目前最广泛使用的Unix shell之一,在...

Global site tag (gtag.js) - Google Analytics