awk를 사용하여 AIX powerpc 시스템에서 변수를 전달하는 bash 스크립트를 작성했습니다. & 답변을이 사이트에서 읽은 후에 작성된 코드가 올바르게 작동합니다. :)변수 및 if 문을 전달하는 bash 스크립트 awk
이제 bash 스크립트에 if 문을 추가하고 awk 구문 오류가 발생했습니다. 내 요구 사항 (아래 스크립트 참조) : - awk 패턴 일치가 true이면 $ 0을 출력하십시오. - 그렇지 않으면 "트랜잭션 : p 값을 찾을 수 없습니다."
bash-4.2$ cat trans.txt
10291413
8537353
8619033
8619065
8625705
trans.txt
의콘텐츠 누군가가 나를 도와 줘요 수 없습니다. 고맙습니다. getDetail.sh의
내용
#!/usr/bin/bash
sysDir="/var/syslog-ng/TEST/STS"
syslogFile="DPSTSLog2014-10-22T09.log"
pattern="Latency"
filename=$1
while read f; do
concatPattern="$f.*$pattern"
awk -v p="$concatPattern" '$0 ~ p {print $0}' $sysDir/$syslogFile
done < $filename
실행 명령 실행
./getDetails.sh trans.txt
아래 결과
2014-10-22T09:15:53+11:00,10.16.198.50,info,latency,[info] xmlfirewall(ws-TrustValidate): trans(10291413): Latency: 0 0 0 0 14 14 0 14 0 0 0 14 0 0 0 0
2014-10-22T09:15:38+11:00,10.16.198.50,info,latency,[info] xmlfirewall(ws-TrustValidate): trans(8619033): Latency: 0 0 0 0 73 73 0 73 0 0 0 73 0 0 0 0
2014-10-22T09:18:04+11:00,10.16.198.50,info,latency,[info] xmlfirewall(ws-TrustValidate): trans(8625705): Latency: 0 0 0 0 13 13 0 13 0 0 0 13 0 0 0 0
'{$ 0 인쇄''이 될 수 {$ 0 인쇄}; 다음 번에 {do other thing}' –
빠른 C에 감사드립니다. 마크. 나는 그것이 예상대로 작동하지 않도록 노력했다. –
'{print $ 0; 다음} {print "트랜잭션 : p 값을 찾을 수 없습니다."}' –