我正在尝试使用以下代码计算每行的缩进空格数:
my $line = do {
local $/;
<>
};
if ( $line =~ /\n(\s+)/g ) {
my $count = length($1);
say "amount of spaces are $count";
}
输入文件包含以下文字:
#!/usr/bin/python3
import sys
x = 1
testing
但我的程序只显示第一行的空格数
amount of spaces are 2
我希望它也返回
amount of spaces are 4
amount of spaces are 6
任何想法我能做什么?
答案 0 :(得分:2)
您使用的是if
而不是while
一个简单的解决方法是切换到逐行处理:
while (<>) {
my ($leading_spaces) = /^(\s*)/;
my $count = length $leading_spaces;
say "amount of spaces are $count";
}
答案 1 :(得分:0)
你仍然可以将整个文件篡改为$ line然后(破坏性地):
sed -i 's/verify=platform_default/verify=disable/' /etc/python/cert-verification.cfg
注意我不认为你想使用\ s,因为它包含\ n,它会在几个连续的空行上给你一个匹配。我使用tab \ t和文字空间来匹配。如果您已经在扩展标签,那么当然可以删除它。