[英]what is meaning of sed -e 's|PATH="\(.*\)"|PATH="/opt/man/common/bin:\1"|g' -i /etc/environment line
以下命令是什么意思?
sed -e 's|PATH="\(.*\)"|PATH="/opt/man/common/bin:\1"|g' -i /etc/environment
它替换了所有的实例
PATH="somestring"
和
PATH="/opt/man/common/bin:somestring"
在文件/etc/environment
详细地
s|string1|string2|
用string2
替换string1
|
)由替换命令 ( s
) 后面的字符定义。 更常见的是/
。g
告诉sed
替换所有不重叠的匹配项(而不仅仅是第一个匹配项)\(
和\)
定义一个组(在这种情况下,引号之间的所有内容)\1
是对第一组的反向引用-i
告诉sed
直接在文件中应用更改(内联),而不是写入标准输出。编辑
正如评论中指出的那样,这个正则表达式非常脆弱。
CDPATH="string"
'
分隔的字符串。 它不会匹配PATH='somepath'
。# some comment with PATH="" in the text
STRING='PATH="somepath"
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.