文本结尾处的换行符;在Automator中运行perl脚本

问题描述 投票:0回答:1

我正在编写一个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]
macos perl replace automator textedit
1个回答
0
投票
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]
© www.soinside.com 2019 - 2024. All rights reserved.