如何使用perl oneliner循环遍历许多文件

前端之家收集整理的这篇文章主要介绍了如何使用perl oneliner循环遍历许多文件前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我试图使用perl衬里在第4行添加一行到许多perl文件.我在用 :

perl -pi -le 'print "     cell_type = pad;" if $. ==4' *.cell.plt

但这只是改变我目录中的第一个文件,而不是所有文件.如何一次在所有文件中插入行.我试过几种方法,但总是失败.请帮忙.谢谢.

解决方法

你只是从一个文件句柄读取,所以只有一行4.幸运的是,有一种方法可以重置$..

perl -i -ple'
    print "     cell_type = pad;" if $. == 4;
    close ARGV if eof;
' *.cell.plt

(注意,eof与eof()不同.)

或者,您可以为每个文件执行perl

find -maxdepth 1 -name '*.cell.plt' -type f -exec \
   perl -i -ple'print "     cell_type = pad;" if $. == 4' {} \;

猜你在找的Perl相关文章