相关疑难解决方法(0)

Perl中文件的行号

awk如果我给一个以上的文件作为参数awk,还有两个特殊的变量:

NR=与所有文件中的所有行对应的行号.

FNR=当前文件的行号.

我知道在Perl中,$.对应于NR(所有文件中的行之间的当前行).

FNR在Perl中有没有可与AWK 相媲美的东西?

假设我有一些命令行:

perl -pe 'print filename,<something special which hold the current file's line number>'  *.txt
Run Code Online (Sandbox Code Playgroud)

这应该给我输出像:

file1.txt 1
file1.txt 2
file2.txt 1
Run Code Online (Sandbox Code Playgroud)

perl

9
推荐指数
2
解决办法
7538
查看次数

当前文件行号为$.变量

我知道我可以获取我使用内置变量循环的文件的当前行号$..作为一个实验,我用它来为文件中的每一行添加前缀$.(当前行号)的值.但是,这没有按预期工作.即给出以下文件内容

line one
line two
line three
Run Code Online (Sandbox Code Playgroud)

那么我希望以下代码为每一行添加其行号前缀

for my $line (<FILE>) {
    print "$. : $line";
}
Run Code Online (Sandbox Code Playgroud)

但是,它给出了以下输出

3 line one
3 line two
3 line three
Run Code Online (Sandbox Code Playgroud)

在每行前面加上文件中的行数.而不是当前的线.

perl line-numbers text-files

9
推荐指数
1
解决办法
3859
查看次数

标签 统计

perl ×2

line-numbers ×1

text-files ×1