如何删除perl脚本中的第一行文件

时间:2012-06-06 16:46:11

标签: perl header line

如何删除perl脚本中的第一行txt文件?

`sed "1d" filename.txt` 

不要工作。

4 个答案:

答案 0 :(得分:2)

您可以使用Tie::File

use Tie::File;
tie @array, 'Tie::File', $filename or die $!;
shift @array;
untie @array;

答案 1 :(得分:1)

`sed 1d filename.txt > newfile.txt` 

应该有效。如果你不将它重定向到一个文件,它只会读取整个文件减去stdout的第一行。

答案 2 :(得分:0)

将输出发送到sed的STDOUT(Perl继续捕获变量)而不是filename.txt。您想使用sed的{​​{1}}。

-i

由于没有输出要捕获,因此使用反引号是没有意义的。你想要sed -i "1d" filename.txt

system

更好:(避免启动另一个shell)

system('sed -i "1d" filename.txt');

最佳:(是否为您进行错误检查)

system('sed', '-i', '1d', 'filename.txt');

答案 3 :(得分:0)

因为您使用内联sed执行此操作,所以这是Perl equiv ..

perl -ne'$.==1?next:print' <(seq 1 10)

选项的含义,

-n                assume "while (<>) { ... }" loop around program
-e program        one line of program (several -e's allowed, omit programfile)

其他说明,

  • $.是当前行号的变量。
  • <()是用于在后台生成FIFO的Bash voodoo。