如何提取线条或行?

3 perl parsing

如何连续提取整行,例如第3行.这些数据保存在linux的文本编辑器中.这是我的数据:

1,julz,kath,shiela,angel
2,may,ann,janice,aika
3,christal,justine,kim
4,kris,allan,jc,mine
Run Code Online (Sandbox Code Playgroud)

我想输出像:

3,christal,justine,kim
Run Code Online (Sandbox Code Playgroud)

pax*_*blo 12

以下代码段读取前三行,仅打印第三行然后退出以确保不会发生不必要的处理.

如果没有退出,脚本将继续处理输入文件,尽管您知道您没有使用它.

perl -ne 'if ($. == 3) {print;exit}' infile.txt
Run Code Online (Sandbox Code Playgroud)

正如perlvar指出的那样,$.是访问的最后一个文件句柄的当前行号.


jfs*_*jfs 7

$ perl -ne'print if $. == 3' your_file.txt
Run Code Online (Sandbox Code Playgroud)

以下是@ ysth的答案的脚本版本:

$ perl -mTie::File -e'tie @lines, q(Tie::File), q(your_file.txt); 
> print $lines[2]'
Run Code Online (Sandbox Code Playgroud)


Ran*_*rtz 5

如果它始终是第三行:

perl -ne 'print if 3..3' <infile >outfile
Run Code Online (Sandbox Code Playgroud)

如果它始终是数字值为"3"的第一列:

perl -F, -nae 'print if $F[0] == 3' <infile >outfile # thanks for the comment doh!
Run Code Online (Sandbox Code Playgroud)

既然你没有说明你是如何确定这条线的,那我就提供了另类选择.