[英]What's the meaning of this sed command?
有人可以帮我这个bash命令吗:
sed -i "s/\$CORPUS_DATA/$CORPUS_DATA/g" conf/*.xml
这是什么意思?
它将文件中文本 “ $ CORPUS_DATA”的值替换为环境变量$CORPUS_DATA
的实际值。
测试一下:
$ CORPUS_DATA=hello
$ echo '$CORPUS_DATA'
$ $CORPUS_DATA
$ echo '$CORPUS_DATA' | sed "s/\$CORPUS_DATA/$CORPUS_DATA/g"
hello
请注意,第一部分转义了$
符号,因此正则表达式将字面匹配文本“ $ CORPUS_DATA”。 第二部分则没有,这意味着它将采用env变量的值 。
以下是代码的说明。
sed -i "s/\$CORPUS_DATA/$CORPUS_DATA/g" conf/*.xml
-i
用于将输出保存到Input_file本身。
s
使用替代选项改变\\$CORPUS_DATA
与shell变量$CORPUS_DATA
值。
g
表示对当前行中的所有事件进行更改。
conf/*.xml
遍历conf目录中的所有xml文件。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.