shell中sed无法解析变量值

想向文件中插入一行文案 但是总是解析传入的变量错误,几种实测的结果如下
sed -i "/^dependencies *{$/a\${junitVersion}" $gradleFolder --->结果: ${junitVersion}

sed -i "/^dependencies *{$/a\/${junitVersion}/" $gradleFolder --->结果: / testCompile 'junit:junit:4.12'/

sed -i "/^dependencies *{$/a\//${junitVersion}//" $gradleFolder --->结果: // testCompile 'junit:junit:4.12'//

由第2、3看 变量的值是正确的,第一种就不说了 ,第2、3方式为什么会多出来 / 斜杠啊???

0

5个回答

sed -i '/^dependencies *{$/a\'${junitVersion}'' $gradleFolder

0

试着把传入的变量写空试一下

0

有没有发现你变量带的$和sed匹配那里的$其实是有歧义的 到底是代表变量呢还是代表匹配到尾部呢? 所以sed后面基本都是用单引号做强引用而不是用双引号

0

echo $myip

echo ${myip}

0

可以尝试把传入的变量写空哦

0
Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
其他相关推荐
shell sed 文件修改 环境变量
最近要写一个shell脚本来设定环境变量,过程中遇到一些问题,现记录下来,留给有缘人: 需求: 使用带参数的shell脚本设定环境变量,必要时可以修改环境变量 环境变量的新增很简单,直接echo就行了。 环境变量的修改,大多数使用sed命令实现。因为是使用shell脚本实现,为了使脚本能够通用,脚本里面采用了大量的变量,针对变量sed的使用略有变化,以下是我的sed命令 sed -i "
使用sed根据变量值注释掉文件中相匹配的记录行
问题描述 有批量的profile文件需要更新,因为其中某些环境变量的值需要更新,于是利用sed命令写了如下函数,方便以后使用。 代码展示 unset -f add_var_to_file function add_var_to_file(){ env_var=$1 new_value=$2 tgt_file=$3 # comment out old env lines sed -e "/ $env...
sed 替换变量
node2:/var/www/html#echo 'CTIRA_HOSTNAME=$RUNNINGHOSTNAME$' |sed 's/\$RUNNINGHOSTNAME\$/'$HOSTNAME'/g' CTIRA_HOSTNAME=node2
linux下shell脚本中sed命令使用变量
用linpack做测试,写了一个脚本, 因为每次可修改的参数写在了配置文件里,所以脚本里用sed命令来修改配置文件#测试次数echo “Input Number of tests:”read numt#每次测试的数据规模,测试次数有多少次,这里应该又多少组数字,中间以空格隔开echo “Input Number of equations to solve (problem size):”read ...
shell sed 详述
shell sed 详述shell sed 详述shell sed 详述shell sed 详述shell sed 详述shell sed 详述shell sed 详述shell sed 详述shell sed 详述shell sed 详述shell sed 详述shell sed 详述shell sed 详述shell sed 详述shell sed 详述shell sed 详述shell sed 详述shell sed 详述shell sed 详述shell sed 详述shell sed 详述
【shell】变量内容的删除和替换
【背景】 linux提供了一些可以直接对变量进行操作的符号。通过这些符号,变量中的部分内容可以被删除、替换等,使用它们可以减少代码的行数并提高可读性。 【涉及符号】 ${var#pattern} 从变量头部开始匹配模式,将符合的最短数据删除${var##pattern} 从变量头部开始匹配模式,将符合的最长数据删除${var%pattern} 从变量尾部开始匹配模式,将符合的最短
sed 修改xml键值对
     我们在工作中少不了与xml接触,有时需要修改xml中的属性值,如果xml文件比较冗长且需要修改的东西较多,那么手动修改就是件麻烦事。可以尝试使用sed命令来替我们做这件事。   test.xml的内容如下:   <val id="AA" name="c1"/>   <val id="BB" name="d1"/>   假设我们要把id为AA的记录的name修改为c
shell中变量的空格替换
将多个空格替换为一个空格 echo "1    2  3 4    5     6"|sed 's/[ ] [ ]*/ /g' 清楚所有空格 echo "1    2  3 4    5     6"|sed 's/ //g'
shell中变量内容的删除、替换
path=/home/miaomiao/bin:/home/miaomiao/.local/bin:/home/miaomiao/dev/env/maven/bin:/home/miaomiao/dev/env/jdk1.8.0/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local
shell给文件中数据加上引号(sed)
前几天写脚本的时候,发现需要给属性加上引号来实现mysql中varchar数据类型的值插入操作。 现在把方法分享一下 给属性加单引号: ret=`(echo a b c d|sed "s/\w\+/'&'/g")` echo $ret 输出 'a' 'b' 'c' 'd' 将空格替换为逗号: ret=`(echo a b c d|sed 's/\s\+/,/g')` ...
Linux:文件格式化与相关处理及sed工具
http://blog.csdn.net/pipisorry/article/details/52564957 geditor, sed, ed, awk, Emacs 文本处理工具 [Linux Shell 文本处理工具集锦] geditor 最常用的类似windows下的记事本 ubuntu16.04 gedit乱码问题解决 gsettings set org.gnome.ged...
shell脚本--sed的用法
sed在处理文本时是逐行读取文件内容,读到匹配的行就根据指令做操作,不匹配就跳过。 sed是Linux下一款功能强大的非交互流式文本编辑器,可以对文本文件进行增、删、改、查等操作,支持按行、按字段、按正则匹配文本内容,灵活方便,特别适合于大文件的编辑。本文主要介绍sed的一些基本用法,并通过shell脚本演示sed的使用实例。 1.sed的使用方法,调用sed 命令的语法有两种: 一.在命令...
在shell中使用sed
如果有一个abc.txt文件,内容如下: $cat abc.txt aaa bbb BATBUSINESSTYPE, INSIDEID--) ONLINE; INSIDEID--) ONLINE ccc ddd eee fff 如果要删除ddd,那么脚本可以这样写: sed -i '/ddd/d' abc.txt //-i,将修改写会原文件 如果删除的是一个变量的值,假如变量是va...
shell的变量赋值 单引号 双引号 无引号
特殊:单引号定义变量在awk中的用法正好相反。 awk 中格式化内容 用printf
shell命令-sed常用命令
sed常用命令sed命令 一个编辑文件的命令,一行一行的处理编辑 大概执行流程如下所示 对文件操作,简单的概括是增删改查 PS : 大多数sed命令不会直接操作原文件,先有这样的意识 创建文件 test.txt HELLO LINUX! Linux is a free unix-type opterating system. This is a linux testfi
sed例子用法参数---shell脚本里常用举例
  一,用法 sed  [选项]  [功能]  文件名/路径 选项: -e 多项编辑,在使用多个sed命令时使用 -n 取消默认的输出,使用安静(silent)模式。在一般 sed 的用法中,所有来自stdin的资料一般都会被列出到屏幕上。 但如果加上 -n 参数后,则只有经过sed 特殊处理的那一行(或者动作)才会被列出来 -f 指定脚本...
shell脚本之正则表达式及sed,awk的使用
一,正则表达式1,正则表达式语法Regular Expressionvim grep sed awk perl java nginx apache mail垃圾邮件过滤。。。等等都使用正则什么叫正则表达式:她是一种字符串的表达方式特点:1.理解正则表达式类似理解算术表达式:1+2 3*5 1+2*3 (1+2)*32.正则表达式像算术表达式一样也有优先级构成:一个正则表达式描述了一种模式或字符序列...
Linux Shell-sed替换“/”“\”
1 场景 使用sed替换“/”“\”,脚本该如何写? 2 分析 sed常用的方式是: sed 's/a/b/g' 含义是,在全局内,将a替换为b,这个直接简单快速;但是当面对转义符号时,需要特别处理: 当需要替换\为\\时: reg="$( echo "${reg}" | sed 's/\\\/\\\\\\\/g' )" 当需要替换/为\/时: reg="$( echo "${reg}" ...
sed 替换变量中包含“/” 的字符串
设置变量 A=images.huxuezheng.net/test-golang/ B=registry.cn-shanghai.aliyuncs.com/huxuzheng/ 直接进行替换会报错: #echo $a images.huxuezheng.net/test-golang/ #echo $a|sed "s/$a/$b/g" sed: -e expression #1, char 33...
shell sed总结 D指令
1、D指令后不会打印再打印pattern空间的内容eg: data文件内容This is header lineThis is first line.This is second line.一、指令:sed  'N;h;G;p;D' dataThis is header lineThis is first line.This is header lineThis is first line.Thi...
shell编程(四)| sed 正则表达式
sed一,sed概述sed行编辑器stream editor用来操作纯 ASCII 码的文本处理时,把当前处理的行存储在临时缓冲区中,称为“模式空间”(pattern space),可以指定仅仅处理哪些行sed处理完成之后把缓冲区的内容送往屏幕,接着处理下一行,这样不断重复, 直到文件末尾sed符合条件的处理,不符合条件的不予处理,文件内容并没有 改变,除非用重定向存储输出二,调用 sed 命令有...
shell命令sed替换文件内容
用sed修改文件ip地址,但改的内容是一个变量,直接修改是不是行的先修改ip地址等于xxxx,再用sed 替换 变量eavl sed -i 's/xxxx/$ip' filesed使用变量只能在替换时使用,用法如上所示...
shell中sed命令-N选项的理解
shell中sed命令-N选项的理解最近用到shell中的sed命令,当时对于-N选项的用法很疑惑,后经过思索终于弄明白了,写在这里记录一下。
shell替换文件内某个字符串
数据库中有些时间的字段为月-日没有年。这将导致今年结束后,明年会出现日期难以对账的问题。为了匹配,可以在脚本中把年份加上去。 sed -i s/'0420'/'20180420'/g `grep '0420' -rl a.sql ` 通过这句话,即可将0420替换为20180420 解释: sed: -i表示对文件操作,` `表示将grep 的结果作为操作文件 s/'0420'/'2...
Linux Shell用sed替换匹配的斜杠、大括号等字符串的方法
1.去掉字符串中的\(斜杠在shell中和java一样,有转义含义,所以可以用#作为运算符避免混淆) str='\"saasdadas\"' str=str | sed #\##g' 2.去掉字符串中的\"(第二条斜杠用来转义") str=str | sed #\\"##g' 3.去掉字符串中的{或者} ({}在shell中用来包裹变量避免混淆,所以要想表示{},需要用''包裹)
Shell脚本——使用sed命令编辑文本
1 语法格式 sed [-nefri] "command" file(s) 2 常用选项 -n   只显示sed处理后的结果,而非全部显示 -e   对相同文件进行多项编辑 -f   执行-f后接文件中的sed操作,可直接将sed操作写在一个文件中 -r    -i   直接修改读取的文件,而非在屏幕上输出 3 常用命令 a\   新增,后接的字符串在选定行的下一
Linux shell中使用sed 替换\n换行符 (多行边一行、一行变多行)
基本语法: sed"s/要匹配的字符串/要替换成的字符串/g"test.gson 语法解释:sed是按行处理文本数据的,每次处理一行数据后,都会在行尾自动添加trailing newline,其实就是行的分隔符即换行符。连续两行执行一次sed命令,这样就可以把前一行的\n替换完成。(Ps:执行一次命令其实就是数据两两去除了中间的\n而已) (多行)替换/删除所有换行符(变一行): ...
使用SHELL脚本,sed截取获取文件中指定字符串
sensor-ver.bin文件内容如下: module=sensor libver=1234 ... 需要获取libver后面的1234字符串。方式如下 VER_TMP=$(grep "ver" sensor/jvs3518esiv200-sensor-ver.bin) #获取ver行的字符串赋值给变量 SENSOR_VER=$(echo ${VER_TMP}|sed 's/
Shell 通过sed替换文件字符串
sed's/原字符串/替换字符串/' 1.如果有单引号就把最外层的单引号变成双引号就可以了 sed"s/原字符串包含'/替换字符串包含'/" 2.如果字符串中有/ 就把分割符从/改成# sed -i "" "s#http:/ /www.baidu.com/scm#ssh://git@git.baidu.sh:7999#g" PodConfig.rb 3.匹配关键字 g ...
sed_manual
学习shell sed必读!! 学习shell sed必读!! 学习shell sed必读!!
shell中sed分组命令用法
关于sed分组命令的用法,大括号里面的是嵌套的地址,拿上图举例,首先用/b/选择出包含b的行,然后后面大括号中的代码就是对包含b的行的再次操作,先是把包含hello的行里的world换成shiyanlou,然后再把包含d的行里的world换成louplus,这个地方需要注意的是,含有d的行不止第五行,还有第二行world中的d,所以在d后加个空格,把d空格当成一个替换条件就可以了,这个...
Linux之Shell脚本自动化编程七(函数和sed详解)
shell函数   shell里函数里面的语句需要用大括号括起来,这一点和c语言是一样的。上面函数格式中的[]的意思是可选的,也就是说function可有可无,funnanme后面的小括号可有可无?我下面试了一下,这个还真的必须有,应该是调用的时候不需要加括号,这一点和其他的语言不同,比如python,c。return可有可无。           如果写在一行需要注...
Shell---Shell常用命令(tr、sed、cut)
trtr 命令用于转换或删除文件中的字符。从标准输入设备读取数据,经过字符串转译后,将结果输出到标准输出设备。 tr [-cdst][--help][--version][第一字符集][第二字符集]参数: - -c, –complement:反选设定字符。也就是符合 SET1 的部份不做处理,不符合的剩余部份才进行转换 - -d, –delete:删除指令字符 - -s, –squeeze
Shell中使用grep、sed正则提取、替换字符串
Linux中使用grep正则提取字符串 echo office365 | grep -P '\d+' -o find . -name "*.txt" | xargs grep -P 'regex' -o xargs会将find结果作为grep的输入,防止find结果过多无法处理 -P参数表明要应用正则表达式 -o表示只输出匹配的字符串,这样我们就可以把正则匹配到的结果拿到了。 L...
Shell Sed 替换特定行特定字符
参考: http://blog.csdn.net/nfer_zhuang/article/details/44020599 sed -i '/snd-soc-wmt-fm34/s/^#//' /snd-soc-wmt-fm34/表示匹配含有snd-soc-wmt-fm34字符串的行 可以把snd-soc-wmt-fm34写成 正则表达式。 那么上面那句的意
shell用变量的值作为新的变量名
Shell 中的 eval(将字符串当做变量名取值) 功能说明:重新运算求出参数的内容。 a=”hello world” b=a # 通过变量b获取到hello world 字符串 result=eval echo "$"$b echo $result...
linux shell sed 实现字符串查找、插入实例
1.在特定字符串所在行后添加一行或多行字符: 实例一:通过grep获取特定字符串所在的行号处添加行
shell sed 删除行操作
删除保护字符串'seq2'的行: sed -i '/seq2/d' testr.txt 删除t1.txt文档中每行中 'a2:' 字符串,并输出到t2.txt文档中保存: sed 's/a2\://' t1.txt >t2.txt
SHELL05 - sed基本用法 sed文本块处理、sed高级应用
NSD SHELL DAY05案例1:sed基本用法案例2:使用sed修改系统配置案例3:sed多行文本处理案例4:sed综合脚本应用1 案例1:sed基本用法1.1 问题本案例要求熟悉sed命令的p、d、s等常见操作,并结合正则表达式,完成以下任务:删除文件中每行的第二个、最后一个字符将文件中每行的第一个、第二个字符互换删除文件中所有的数字为文件中每个大写字母添加括号1.2 方案sed文本处理工...
shell中的文本处理(grep,sed,awk命令)
grep    文本过滤命令sed    行编辑器awk    报告生成器一、grep命令grep       匹配条件   处理文件-a 不要忽略二进制数据。 -A<显示列数> 除了显示符合范本样式的那一行之外,并显示该行之后的内容。 -b 在显示符合范本样式的那一行之外,并显示该行之前的内容。 -c 计算符合范本样式的列数。 -C<显示列数>或-<显示列数>...