2012-01-23 3 views
0

쉘 스크립트에서 나중에 사용할 변수의 jobStatus에 percentComplete의 값을 넣고 싶습니다. 이 데이터는 txt 파일에 저장되며이 두 단락을 계속 업데이트하여 데이터를 업데이트합니다. 나는 percentComplete를 얻을 수 있기를 원합니다. 나는 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

regex를 사용하는 것은 매우 나쁜 생각입니다. XML 파서를 사용하면 훨씬 행복 할 것입니다.

여전히 원하는 경우

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

그것은 정규 표현식을 사용하여 XML을 구문 분석하는 나쁜 생각입니다. 정규 표현식은 XML이 정규 언어가 아니기 때문에 충분히 강력하지 않습니다.

관련 문제