Perl 在换行符处替换空格



我有一个文本文件,其内容如下:

a b
c

我使用以下 Perl 代码在输入行中出现空格字符的位置替换下划线"-"字符:

while (<>) {
   $_ =~ s/s/_/;
   print $_;
}

我得到这样的输出:

a_b
c_

所以我的问题是为什么 Perl 也替换下划线来代替换行符 '' char,这从包含"c"的输入行中很明显?当我在代码中使用 chomp 时,它按预期工作。

>s匹配所有空格字符[ trnf],因此如果要替换纯空格,请使用空格

$_ =~ s/ /_/g;
# or just
s/ /_/g;

翻译也可以用于这种简单的替换,例如。 tr/ /_/;

最新更新