source=<!--jta-data-source>jdbc/FCBDataSource</jta-data-source-->
destination=<jta-data-source>jdbc/FCBDataSource</jta-data-source>
sed -i "s/$source/$destination/g" /home/rohan/R2.5LZN/UIReleasedArea/obp.ui.domain/persistence.xml
我收到错误sed: -e expression #1, char 44: unknown option to s
答案 0 :(得分:1)
考虑替换发生时会发生什么。该命令变为:
sed -i 's/<!--jta-data-source>jdbc/FCBDataSource</jta-data-source-->/<jta-data-source>jdbc/FCBDataSource</jta-data-source>/g' some_filename
然后,sed
看到s/<!--jta-data-source>jdbc/FCBDataSource</j…
并认为您要将<!--jta-data-source>jdbc
的匹配项替换为文本FCBDataSource<
,并且s
命令具有非法j
修饰符(和其他垃圾)。
您需要选择一个未出现在模式或替换文本中的分隔符。 ,
即可。
答案 1 :(得分:0)
destination='<!--jta-data-source>jdbc/FCBDataSource</jta-data-source-->'
source='<jta-data-source>jdbc/FCBDataSource</jta-data-source>'
sed -i "s,$source,$destination,g"
/home/rohan/R2.5LZN/UIReleasedArea/obp.ui.domain/persistence.xml
问题在于变量
需要引用