Tabs 让Perl正则表达式在macOS中匹配换行符,后跟制表符

Tabs 让Perl正则表达式在macOS中匹配换行符,后跟制表符,tabs,newline,Tabs,Newline,我在macOS.plist文件中有以下两行: <key>Disabled</key> <true/> 注意:我不想将Disabled更改为Disabled,这只是为了显示匹配正在工作 我知道第二行以\t开头,我可以将其匹配/替换为: perl -pi -w -e 's/Disabled<\/key>\n/DISABLED<\/key>\n/g' file perl -pi -w -e 's/\t<true/\t

我在macOS.plist文件中有以下两行:

    <key>Disabled</key>
    <true/>
注意:我不想将
Disabled
更改为
Disabled
,这只是为了显示匹配正在工作

我知道第二行以
\t
开头,我可以将其匹配/替换为:

perl -pi -w -e 's/Disabled<\/key>\n/DISABLED<\/key>\n/g' file
perl -pi -w -e 's/\t<true/\t<false/g' file

非常感谢您的帮助。

看来我对Perl的理解非常有限

在进一步挖掘之后,我现在意识到,在我使用Perl的代码中,是在逐行读取文件。我需要做的是指示Perl一次性读取该文件,或者以另一种方式“slurp”该文件。使用
-0
将Perl置于模式

我的原始非工作代码:

perl -pi -w -e 's/Disabled<\/key>\n\t<true/Disabled<\/key>\n\t<false/g' file
为了更进一步,我将匹配模式中的
\n\t
替换为
(\s*)
,以匹配任何
空格
选项卡
换行符
零次或多次,并将替换模式中的
\n\t
替换为
$1

perl -0pi -w -e 's/Disabled<\/key>(\s*)<true/Disabled<\/key>$1<false/g' file
perl-0pi-w-e已禁用(\s*)
perl -pi -w -e 's/Disabled<\/key>\n\t<true/Disabled<\/key>\n\t<false/g' file
perl -0pi -w -e 's/Disabled<\/key>\n\t<true/Disabled<\/key>\n\t<false/g' file
perl -0pi -w -e 's/Disabled<\/key>(\s*)<true/Disabled<\/key>$1<false/g' file