#!/usr/bin/perl
open(SARAN,"first.txt") or die "Can't Open: $!\n";
while($line=<SARAN>)
{
print "$line\n";
}
close SARAN;
您好, 在上面的perl脚本中,我需要一个功能...... 在first.txt中,每一行都以前面的一些空格开头。 我需要打印前面没有空格的线条...... 怎么做。
感谢..
答案 0 :(得分:8)
您的问题含糊不清:您是否要打印无法启动的行 在删除任何前导空格后,用空格或打印所有行?
@codaddict展示了如何做到后者。我将展示如何做前者:
#!/usr/bin/perl
use strict;
use warnings;
open my $SARAN, '<', "first.txt"
or die "Can't open 'first.txt': $!";
while (my $line = <$SARAN>)
{
print $line unless $line =~ /^\s/;
}
close $SARAN;
请注意以下事项:
答案 1 :(得分:7)
你可以这样做:
while($line=<SARAN>) {
$line=~s/^\s+//; # delete the leading whitespace.
print "$line\n";
}
我们使用Perl's substitute operator s
,它允许我们使用正则表达式查找匹配项,并替换与另一个字符串匹配的字符串部分。
我们在这里使用正则表达式^\s+
^
是起始锚。\s
是任何空格字符。+
量词标记一个或多个基本上我们匹配并替换前导的一个或多个空白字符,没有任何有效意味着删除它们。
答案 2 :(得分:0)
#!/usr/bin/perl
open(SARAN,"first.txt") or die "Can't Open: $!\n";
@line=< SARAN>;
$str_line = join("", @line);
print(SARAN "$str_line");
close SARAN;