我已成功使用以下命令将$ 1的文本参数替换为$ 2,但是,它忽略大小写。我想区分大小写。 SED可以进行区分大小写的搜索,还是应该使用perl? Perl中的命令敏感等效命令是什么?
sed -i -e "s/$1/$2/g" "$2/index.html"
答案 0 :(得分:5)
开箱即用都区分大小写。 Perl regex具有/i
标志来关闭区分大小写,并且某些sed
方言借用了它。但是您无需执行任何操作即可明确表示您希望案件有意义。
作为一种具有更广泛功能的更新语言,Perl更具通用性,因此您可以避免插值可能包含例如例如,切入脚本代码以支持将其作为纯数据提供。有点自相矛盾的是,一旦您使用了POSIX所详细说明的非常狭窄的核心sed
功能以外的任何功能,Perl可能也是两者中更易于移植的。
答案 1 :(得分:3)
sed
不应该忽略大小写。如果要进行不区分大小写的匹配,则需要在模式中指定i
标志。
perl
也是如此-除非另行设置,否则所有正则表达式均区分大小写。
https://linux.die.net/man/1/perlre
i
进行不区分大小写的模式匹配。
默认值区分大小写。