system.log 문자열에서 변수를 구문 분석하고 구문 분석된 변수를 사용하여 명령을 실행합니다.

system.log 문자열에서 변수를 구문 분석하고 구문 분석된 변수를 사용하여 명령을 실행합니다.

내 현재 솔루션은 작동하지만 이 작업을 수행하는 더 좋은 방법이 있다는 것을 알고 있습니다.

현재 키워드를 찾기 위해 macOS system.log의 끝부분을 실행합니다. 검색하려는 각 키워드에 대해 별도의 스크립트가 있고 writestate 명령을 실행하여 키워드가 나타났음을 반영합니다.

나는 "장면 이름=[MOVIE]"와 같이 로그에 표시된 키워드 트리거를 사용한 다음 문자열에서 MOVIE를 구문 분석하여 변수에 삽입한 다음 상태로 작성하는 것을 선호합니다.

제가 생성한 각 장면 이름에 대해 다음 스크립트를 작성했지만 값을 변수에 직접 쓴 다음 명령을 수신하면 실행하는 것이 더 깔끔할 것입니다.

#!/bin/bash
tail -F /var/log/system.log |
grep --line-buffered 'MOVIE' |
while read ; do ~/Applications/RacePointMedia/sclibridge writestate userDefined.ActiveScene MOVIE ; done

답변1

나는 이 awk 문을 사용하여 mySQL.logs에서 콘텐츠를 가져옵니다. 문자열과 로그 파일에 맞게 조정했습니다.

이것이 당신에게 도움이 될지 확신할 수 없지만 그럴 수도 있을 것 같습니다. 그러면 일치 항목이 포함된 로그의 마지막 줄을 가져오고 마지막 필드를 word_match에 넣습니다. 첫 번째 필드의 경우 {a=$0}를 {a=$1}로 늘리고 두 번째 필드의 경우 {a=$2} 등으로 늘릴 수 있습니다.

`word_match=`awk '/scene name=\[MOVIE\]/ {a=$0} END{ print a }' /var/log/system.log | awk '{print $(NF)}'
echo $word_match #to display what you got. 

도움이 되었기를 바랍니다

관련 정보