2012-01-23 64 views
0

後でシェルスクリプトで使用する変数のjobStatusにpercentCompleteの値を入れたいとします。このデータはtxtファイルに保存され、データを更新するこれらの2つの段落が継続的に出力されます。 percentCompleteを取得できるようにしたい。私はcatのtxtファイルを持っていますが、percentComplete(jobStatus内のもの)を取得するために使用する正規表現はわかりません。正規表現の文字列

<batchStatus name="" submissionTime="1/23/12 10:00:26 AM" sentBy="mike" 
timeElapsed="43 second(s)" timeRemaining="4 minute(s)" timeElapsedSeconds="43" 
timeRemainingSeconds="294" percentComplete="12" resumePercentComplete="0" 
status="Processing" batchid="FD66DC21-6AA4-47FB-A3F0-7300C7BDAB8A" /batchStatus> 
<jobStatus name="file.mov" submissionTime="1/23/12 10:00:26 AM" sentBy="mike" 
jobType="Compressor" priority="HighPriority" timeElapsed="43 second(s)" 
timeRemaining="4 minute(s)" timeElapsedSeconds="43" timeRemainingSeconds="294" 
percentComplete="12" resumePercentComplete="0" status="Processing: Transcoding" 
jobid="FDF1A488-51B9-4B9A-908B-FD5D95CE7E92" 
batchid="FD66DC21-6AA4-47FB-A3F0-7300C7BDAB8A" /jobStatus> 

答えて

1

それは、このために正規表現を使用することは非常に悪い考えです、あなたは、XMLパーサーを使用して非常に幸せになると思います。

あなたはまだしたい場合:

<jobStatus[^>]*percentComplete="([\d]+)" 
1

それは正規表現を使用してXMLを解析するために、悪い考えです。正規表現は、XMLが通常の言語ではないため、十分強力ではありません。