根据某个文件的关键字做替换
#!/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(Bourne-Again SHell)是Linux和Unix系统中最常用的命令行解释器,也是编写系统管理脚本的首选工具。通过学习本书,...
Bash(Bourne-Again SHell)是Unix/Linux系统中最常用的Shell,因此深入理解并掌握高级Bash脚本编写技巧对于提升工作效率至关重要。 **一、Bash脚本基础** 1. **变量**:在Bash脚本中,变量用于存储数据。声明变量...
**高级Bash脚本编程指南**是一本专为有经验的Linux或Unix用户设计的教程,旨在深入探讨Bash shell脚本的高级概念和技术。Bash(Bourne-Again SHell)是大多数Linux和Unix系统上的默认命令行解释器,它提供了丰富的...
作为一个初学者,了解并掌握Bash脚本编程能极大地提高你的系统管理效率。下面,我们将深入探讨Bash脚本的基础和高级概念。 ### 1. Bash脚本基础 - **变量**:Bash脚本中的变量用于存储数据,可以是数字、字符串或...
**高级Bash脚本编程指南**是一份专为学习Shell编程设计的中文资源,它深入讲解了Bash shell脚本的高级用法和技术,对于想要提升Linux或Unix系统自动化任务处理能力的用户来说,是一份不可多得的教程。本文将依据这份...
**高级Bash脚本编程指南** Bash(Bourne-Again SHell)是Linux和Unix系统中最常用的一种命令行解释器,它为用户提供了编写脚本的强大工具。本指南将深入探讨Bash脚本编程的高级技巧和概念,帮助你提升在Linux环境中...
在Perl 脚本中使用eval 命令来强制变量替换 11-15. 使用set 来改变脚本的位置参数 11-16. 重新分配位置参数 11-17. Unset 一个变量 11-18. 使用export 命令传递一个变量到一个内嵌awk 的脚本中 11-19. 使用getopts ...
- 在Bash脚本中使用`#`符号来进行单行注释,对于多行注释可以使用连续的`#`符号。此外,可以通过执行`help`命令获取内置命令的帮助信息。 ### 5. 变量与数组 - **变量分类**: - 环境变量:在当前会话期间保持不变...
- 参数替换:可以通过特定语法改变参数的值或格式。 - **引用**:使用单引号(`'`)或双引号(`"`)来引用字符串,不同引用方式对变量展开有不同影响。 - **测试**:使用`[ ]`或`[[ ]]`来进行条件测试,支持文件测试...
4. 脚本优化:通过阅读源码,学习如何编写高效、可维护的Bash脚本。 五、高级话题 1. 函数库:利用bashrc和bash_profile文件,定制用户环境。 2. 环境变量:如何设置和管理全局环境,影响所有Bash会话。 3. 错误...
Bash脚本在新进程中运行,所以不会改变其他进程或原始Shell中的变量。 **变量特性** 1. **变量类型** Bash没有像C语言那样的数据类型。所有变量默认为字符串,可以存储任何非空字符序列。 2. **变量赋值** 变量...
- **注释**:在Bash脚本中,使用`#`符号来添加注释,以便解释脚本的工作原理。 - **帮助**:可以通过内置命令如`help`来获取Bash内置命令的帮助信息,或者使用`man bash`查看Bash的手册页面。 #### 5. 变量与数组 -...
根据原文件提供的内容,本文将详细介绍Bash命令行处理的十二个步骤,同时也会涵盖一些高级话题,如引号的使用、`eval`命令的应用以及命令优先级等。 #### 一、Bash命令行处理的12个步骤 ##### 1. 将命令行分成由...
一个Bash脚本通常以`#!/bin/bash`开始,告知系统使用Bash解释器来执行脚本。之后,可以定义变量、函数,并编写控制流结构。脚本的最后可能包含清理或退出指令。 七、输入/输出重定向 Bash允许通过`>`、`和`>>`符号...
### 高级Bash脚本指南 #### 一、引言与基础知识 在《高级Bash脚本指南》中,作者Mendel Cooper系统地介绍了如何深入理解和掌握Bash脚本编程技术。Bash(Bourne Again Shell)是目前最广泛使用的Unix shell之一,在...