현재 스위치에서 발생하는 모든 끝점 이름과 호출을 캡처하고 출력을 파일로 보내는 스크립트를 작성 중입니다.
현재 출력은 다음과 같습니다.
Registration ID Nitin_01
Ongoing Calls 9 (0:9)
Registration ID Nitin_02
Ongoing Calls 6 (6:0)
추가 엔드포인트는 다음과 같습니다(약 200개 이상의 엔드포인트)
여기서 원하는 출력은 다음과 같아야 합니다.
Registration ID Ongoing Calls
Nitin_01 9
Nitin_02 6
스크립트는 다음과 같습니다. 제안 후 다음 출력을 스크립트에 저장하면 보고 싶은 출력이 나오는데 원본과 열에는 여전히 표시되지 않습니다.
출력은 아래와 같습니다.
Nitin SBC:~ # cat /root/Nick.csv | more
Registration ID Ongoing Calls
Nitin_03 26
Nitin_01 0
암호:
ipath=/usr/local/nextone/bin
ifile=/root/Nick.csv
{ date '+%F %T';
"$ipath"/cli iedge list |
awk 'BEGIN { print "Registration ID", "Ongoing Calls"}
/Registration ID/ { id = $3; next }
/Ongoing Calls/ { print id, $3 }'
} >> "$ifile"`
cli iedge list
이 명령은 스위치에 구성된 모든 엔드포인트에 대한 정보를 얻는 데 도움이 됩니다.
누구든지 이 문제를 해결하도록 도와줄 수 있나요?
답변1
이 시도:
ipath=/usr/local/nextone/bin
ifile=/root/Nick.csv
{ date '+%F %T';
"$ipath"/cli iedge list |
awk -v OFS='\t' \
'BEGIN { print "Registration ID", "Ongoing Calls"}
/Registration ID/ { id = $3; next }
/Ongoing Calls/ { print id, $3 }'
} >> "$ifile"
답변2
사용하고 싶다면 grep
다음과 같이 할 수 있습니다.
paste <(cat input.txt | grep -oP "Registration ID\s+\K.+") <(cat input.txt | grep -oP "Ongoing Calls\s+\K.+")
이는 출력을 cli iedge list
일부 input.txt
파일에 저장한다고 가정합니다.
답변3
탭과 파이프를 출력하도록 awk 스크립트 수정column -t -s<TAB>
ipath=/usr/local/nextone/bin
ifile=/root/Nick.csv
{ date '+%F %T';
"$ipath"/cli iedge list |
awk 'BEGIN {OFS="\t"; print "Registration ID", "Ongoing Calls" }
/Registration ID/ { id = $3; next }
/Ongoing Calls/ { print id, $3 }' |
column -t -s$'\t'
} >> "$ifile"`
출력은 다음과 같습니다:
2015-06-03 11:11:33
Registration ID Ongoing Calls
Nitin_01 9
Nitin_02 6