什么=〜在linux中意味着在if条件中用于比较值


1

实际上tomcat/conf/catalina.properties文件包含行shared.loader=/usr/share/sfit/conf我的意思是值有一些路径。

所以使用shell脚本我们正在更新shared.loader文件中的值。并且还有一个if条件比较它的值

if [ $string1 =~ $string2 ] ; then

=~是什么意思。

而且我想删除行“shared.loader =”中的值后包含的内容 shared.loader=

请帮帮我们


=~是一个二元运算符,当它被使用时,右边的字符串被认为是一个扩展的正则表达式。
devnull 2014年

好吧有人可以帮我从文件catalina.properties中删除行share.loader =“value”中的字符串“value”
user2783146 2014年

我认为没有关于这个问题的Linux具体内容。你也许可以用apache和bash等标记它。此外,如果您想要更改/改进它,只需编辑问题(因为没有答案,如果有,那么您应该问一个新问题)。此外,像unix.stachexchange.com这样的其他网站可能更适合编写像这样的shell脚本。
hyde 2014年

你用的是什么外壳?在bash中,=~只能在double中使用[[ ... ]]
choroba 2014年

Answers:


0

试试这样:

sed -ie 's,^shared.loader=\(.*\)value_to_remove\(.*\),shared.loader=\1\2,' tomcat/conf/catalina.properties

说明:

  • “-i”表示“替换文件内容”。在测试时必须省略!
  • “-e”表示“表达应用于每一行”。这里可选。
  • “s,mask,newval”表示“搜索和替换”。
  • \1被替换到第一内容(.*)\2第二内容(.*)
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.