字符串的正则表达式

时间:2012-01-23 15:14:39

标签: regex shell unix

我想将jobStatus中的percentComplete值放在一个变量中,以便稍后在shell脚本中使用。此数据进入txt文件并不断打印这两段更新数据。我希望能够获得percentComplete。我有cat文件,但我不知道用于获取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>

2 个答案:

答案 0 :(得分:1)

使用正则表达式是一个非常糟糕的主意,使用XML解析器会更开心。

如果您仍想:

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

答案 1 :(得分:1)

使用正则表达式解析XML是个坏主意。正则表达式不够强大,因为XML不是常规语言。