2

この perl スクリプトはこちらで見つかりました。これは私の目的に適しているようです。Unicode テキスト ファイルを開き、コマンドを実行できるように各行を読み取ります。しかし、各行で特定の ICU コマンドを実行する方法がわかりません。誰かが私を助けることができますか?私が得るエラーは (largefile はスクリプト名です): syntax error at ./largefile line 11, near "/ ." です。検索パターンが ./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

端末コマンドを実行するには、コマンドが system() にある必要があるため、次のように変更します。

system("LD_LIBRARY_PATH=icu/source/lib/ ./a.out $line >> newtext.txt");
于 2011-06-20T02:50:11.117 に答える
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 に答える