我有一个充满文件的目录,我需要从中提取页眉和页脚。它们的长度都是可变的,因此使用头部或尾部是行不通的。每个文件都有一行我可以搜索,但我不想在结果中包含该行。
通常是
*** Start (more text here)
并结束于
*** Finish (more text here)
我希望文件名保持不变,所以我需要覆盖原始文件,或者写入不同的目录,然后我自己覆盖它们。
哦,是的,当然是在 Linux 服务器上,所以我有 Perl、sed、awk、grep 等。
Try the 拖鞋! http://perldoc.perl.org/perlop.html#Range-Operators“..“ 操作员。
# flip-flop.pl
use strict;
use warnings;
my $start = qr/^\*\*\* Start/;
my $finish = qr/^\*\*\* Finish/;
while ( <> ) {
if ( /$start/ .. /$finish/ ) {
next if /$start/ or /$finish/;
print $_;
}
}
然后你可以使用 -i perl 开关来更新你的文件,就像这样......
$ perl -i'copy_*' flip-flop.pl data.txt
...这会更改 data.txt 但预先将其复制为“copy_data.txt”。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)