我正在编写一个Perl脚本来处理手工处理的文档。我需要每周执行此过程,始终删除相同的垃圾数据。这些是rtf文件,是使用另一个Automator脚本从Mac OS X上的html文件转换而成的。我创建了一个新的Droplet脚本来处理rtf文件,以删除不必要的垃圾数据。
我的shell脚本是:
#!/bin/bash
#
# replace CR with CRLF
#
/usr/bin/perl -CSDA -pi <<'EOF' - "$@"
s/dateformat//og;
s/text1//og;
s/text2//og;
s/text3//og;
s///og;
EOF
这将完成99%的工作。但是,最终文件带有多余的换行符。有没有办法让text1,text2等的替换包括删除随后的换行符?我唯一的限制是,它必须能够在Automator脚本外壳窗口中运行。
输入样本数据的格式如下:
Text1 Dateformat
[Content1]
Text2 Dateformat
[Content2]
Text3 Dateformat
[Content3]
上面的脚本产生输出:
[Content1]
[Content2]
[Content3]
所需的输出应格式化为:
[Content1]
[Content2]
[Content3]
use strict;
use warnings;
use Data::Dumper;
my $record = {};
my ( $key, $val );
while ( my $row = <DATA> ) {
chomp($row);
next if !$row;
if ( $row =~ /Dateformat/) {
( $key, undef ) = split /\s+/, $row;
print "$key\n";
} elsif ($row =~ /\[/) {
$record->{$key} = $row;
}
}
print Dumper($record);
__DATA__
Text1 Dateformat
[Content1]
Text2 Dateformat
[Content2]
Text3 Dateformat
[Content3]