sed搜索文件中数组变量并赋值给现变量

来源:互联网 发布:魔王神官2知轩下载 编辑:程序博客网 时间:2024/05/11 00:50

shell刚入门

需求: 需要从一个文件中读取一个变量值,并赋值给现有变量使用。首先想到用grep,搜索到返回,然而事与愿违,变量值是数组,需要遍历,然而返回的是一个整字符串,

即使通过截取,还是出现了““string””的样式, 这个是数组元素正是我要遍历的目录,始终提示找不到目录。 然后使用 grep &a的方式,可是变量使用多次,返回的无法使用。


最后只能通过比较繁琐的办法了,首先使用sed返回变量值:


 # search file name "xxx.sh"
String=`sed -n '/Folders=/'p  xxx.sh  | sed 's/^"//g' | sed 's/\"//g' | sed 's/Folders=//'`

注:sed 's/^"//g' | sed 's/\"//g' 用于除去首位双引号

得到的值是 echo $String 样式为:(hello word  shell)

此刻的“()”已经失去了数组的作用,是个字符串,所以是要删除再自己加上:

StringLen=${#String}
AppFolders=( ${String:1:$AppStringLen-2} )

此时 AppFolders即转化为原本的目录集合了,里面可以遍历,执行cd命令

0 0
原创粉丝点击