我想从命令行usind sed更改配置文件中的注释行。 例如,行
#xllForwarding no
是与之相关的。我想解开它并将值更改为yes。 我怎样才能做到最好的练习?
我试过的一行示例:
sed -r 's/^#[ *] passwordAuthentication.* /passwordAuthentication no/' sshd_config
它没有用。 请注意,#符号和配置名称之间可能有空格(0或更多)
由于
答案 0 :(得分:1)
你可以使用类似的东西:
sed -r 's/^[ \t]*#[ \t]*(.*)no[ \t]*$/\1yes/g;' file
它匹配整行(^
和$
确保重新跨越整行)
[ \t]*
#
[ \t]*
(.*)
被捕获到\1
no
[ \t]*
替换重新使用\1
(在#
之后覆盖(可选空格)到no
,然后将yes
放在后面。
答案 1 :(得分:1)
将source 'https://github.com/CocoaPods/Specs.git'
platform :ios, '7.0'
pod 'Google-Mobile-Ads-SDK', '~> 7.0'
更改为/^#[ *] passwordAuthentication.* /
并且它可以正常工作。您不需要/^# *passwordAuthentication .*/'
作为BRE,因此将在所有seds中按原样运行。获取有关regexps的教程。