line="/vision/system.properties.{IP}=192.168.12.123"

eval `echo $line|awk -F '.{' '{print "path="$1}'`

echo $path

#以上命令实现 解析字符串line,提取"/vision/system.properties" 并赋值给变量path

eval `echo $line|awk -F '.{' '{print "key_and_value="$2}'

eval `echo $key|awk -F '}=' '{print "key="$1}'

echo $key

#上面两条命令实现 提取字符串line中的"IP"并赋值给key

例如template.txt文件中的内容有:

/vision/system.properties.{IP}=192.168.12.123

/vision/system.properties.{PORT}=8083

......

shell 脚本如下

while read line
do
eval `echo $line|awk -F '.{' '{print "vt_path="$1}'`
eval `echo $line|awk -F '.{' '{print "vt_key_and_value="$2}'`
eval `echo $vt_key_and_value|awk -F '}' '{print "vt_key={"$1"}"}'`
eval `echo $line|awk -F '}=' '{print "vt_value="$2}'`

if [ -n $vt_path ] && [ -n $vt_key ] &&[ "{}" != $vt_key ]  && [ -n $vt_value ]; then

sed -i -e s/$vt_key/$vt_value/g $vt_path
fi
:
done < template.txt

#假如 变量 var的值为:num=12,也即var="num=12",现在想把 12 赋值 变量 id # awk 的-F 后跟上要 分割 字符串 时的指定分隔符 # awk $0是要 分割 字符串 ,$1是 分割 后的第一部分,以此类推 id=`echo $var | awk -F "=" '{print $2}'` Linux Shell 脚本 字符串 拼接与 赋值 总结 字符串 拼接   最近在工作用到shell 脚本 ,用到了 字符串 变量 的拼接,同时需要对 字符串 进行 赋值 ,这里与大家分享一下, 字符串 拼接   shell 脚本 里面可以对 字符串 进行拼接,并且可以将拼接后的值赋予给另外一个 变量 ,下图给出了几种 字符串 拼接的样例,供大家参考。 #!/bin/bash a="123" # 定义a 变量 为"123" b="456" # 定义b 变量 为"456" first=$a$b # 第一种方式来拼接字符 Shell 字符串 与数组操作实例前言本篇主要介绍了介绍在Shell 脚本 对于 字符串 的处理,数据 变量 的定义与使用。 字符串 截取及切割子串截取的三种用法:${var:起始位置:长度}expr substr "$var" 起始位置 长度echo $var | cut -b 起始位置-结束位置 字符串 的截取,只是单纯将 字符串 截取出来,对原来的 变量 并不会进行修改。${var:起始位置:长度}SCHOOL="Th... 原文https://blog.csdn.net/wuyinggui10000/article/details/52779364 脚本 开发 遇到的问题是:原java 字符串 分割 操作(substring indexOf等)不知道怎么处理(比如/a/b/c/d.txt我想知道文件的名称)查询相关资料得知,shell 可以采用标识符来做 分割 字符串 ,包括substring(0,index)和substrin... 1.用户定义的 变量 用户定义的 变量 有字母数字及下划线组成,并且 变量 名的第一个字符不能为数字.与其它UNIX名字一样, 变量 名是大小写敏感的.对于 变量 ,用户可按如下方式 赋值 :name = value在引用 变量 时,需在前面加$符号,用户也可以在 变量 间进行相互 赋值 ,如:(前面的$是命令提示符)$ JOHN = john$ NAME = $JOHN$ echo Hello $NAMEHello john也可以... 在实际开发的过程 ,文件读写也很重要,下面说一下python如何逐行 读取文件 。如果程序要读取行,通常只能用文本方式来读取,道理很简单,只有文本文件才有行的概念,二进制文件没有所谓行的概念。文件对象提供了如下两个方法来读取行:readline([n]):读取 一行 内容。如果指定了参数 n,则只读取此行内的 n 个字符。readlines(): 读取文件 内所有行。下面程序示范了使用 readline() ... linux 常用于 读取文件 内容指令主要有以下七种: cat,tac,nl,more,less,head,tailcat 文件名 –将文件内容显示在屏幕上 cat -n 文件名 –将文件内容显示在屏幕上,并显示行号 cat -b 文件名 –将文件内容显示在屏幕上,并显示行号,但是不显示空白行行号tac则是和cat反过来的(名字都是反过来的) tac 文件名 –将文件内容显示在屏幕上,但是 mkdir -p /data/www/flowbilling/`echo ${arr[0]%/*}|sed 's/\/home\/www\/flowbilling-report\/TuikuanIamges\///g'` 将 arr数组下标为0的数删除掉最后一个“/”之后的所有值 删除掉 字符串 的url路径 注意转义符 我们在shell 脚本 编程 ,经常需要用到 字符串 切割,即将 字符串 切割为一个数组,类似java 的split 函数,下面对几种常见的方式做一个总结。目录方法一: 利用shell 变量 字符串 替换   方法二: 设置分隔符,通过 IFS 变量 方法三: 利用tr 指令实现字符替换  (!只能针对单个分隔符)方法一: 利用shell 变量 字符串 替换原理:${parameter//patte... Shell命令替换是指将命令的输出结果作为值赋给某个 变量 。比如,在某个目录 输入ls命令可查看当前目录 所有的文件,但如何将输出内容存入某个 变量 呢?这就需要使用命令替换了,这也是Shell编程 使用非常频繁的功能。Shell 有两种方式可以完成命令替换,一种是反引号``,一种是$(),使用方法如下:var_name=`command`var_name=$(command)其 ,var_name是...