0

ターミナル サーバーに保存されているファイルがあり、TCL と正規表現を使用して一致させたいファイルにいくつかの情報が保存されています。

どうすればこれを達成できますか?正規表現を使用するためにファイルを開く必要がありますか? 誰でもこれについて私を助けることができますか?

4

1 に答える 1

0

はい。概念的には、ファイルをメモリに読み込んでから、正規表現を使用して必要な情報を取得します。非常に大きなファイルの場合、一度に1つの部分(行など)を読み取り、それに正規表現を適用することでメリットが得られますが、複数行のパターンを処理する必要がある場合があり、コードがかなり複雑になる可能性があります。 。

ファイルを読み込むには、最初にローカルマシンにファイルをコピーする必要がある場合があります。(実際にローカルでファイルを作成することを避けることができますが、常にそうとは限りません。)または、Tclプログラムが実行される場所を元のファイルの隣に移動します。これは一般的にも同様に機能します。

非常に単純なケースがあると仮定します。

# Use scp to bring file across; _many_ other options possible
exec scp otherhost:file.txt localfile.txt

# Read in the file:
set f [open localfile.txt]
set data [read $f]
close $f

# Get the interesting bits...
if {[regexp {MATCH_THIS: (\d+)} $data -> theNumber]} {
    # Found a match, number in $theNumber
}
于 2012-06-21T14:56:25.610 に答える