2

我在这里找到了这个 perl 脚本,它似乎适用于我的目的。它打开一个 Unicode 文本文件并读取每一行以便可以运行命令。但我无法弄清楚如何在每一行上运行某个 ICU 命令。有人可以帮我吗?我得到的错误是(大文件是脚本名称):./largefile 第 11 行的语法错误,靠近“/”。搜索模式未在 ./largefile 第 11 行终止。

#!/usr/bin/perl

use strict;
use warnings;

my $file = 'test.txt';
open my $info, $file or die "Could not open $file: $!";

while( my $line = <$info>)  {      
do
LD_LIBRARY_PATH=icu/source/lib/ ./a.out "$line" >> newtext.txt
done
}

close $info;

基本上我想打开一个大文本文件并运行命令(通常从命令行运行......我认为我如何在 perl 脚本中调用它是问题,但我不知道如何解决它)“ LD_LIBRARY_PATH=icu/source/lib/ ./a.out "$line" >> newtext.txt" 在每一行上,以便在脚本处理完之后用所有行填充 "newtext.txt"。ICU 部分正在破坏高棉语。

任何帮助将非常感激!我不是一个程序员...谢谢!

4

2 回答 2

1

您是否尝试过反引号:

while (my $line = <$info>) {
  `LD_LIBRARY_PATH=icu/source/lib/ ./a.out "$line" >> newtext.txt`
  last if $. == 2;
}
于 2011-06-20T02:36:53.217 回答
1

为了执行终端命令,命令需要在 system() 中,因此更改为

system("LD_LIBRARY_PATH=icu/source/lib/ ./a.out $line >> newtext.txt");
于 2011-06-20T02:50:11.117 回答