을 나오지 나는 확실히 SED/AWK 초보자 간주 될 수 있습니다. 나는 성공하지 못한 다단계 필터를하기 위해 일해왔다. 각 세그먼트는 자체에서 실행할 때 결과를 산출하지만, 함께 연결하면 아무 것도 얻을 수 없습니다. 나는 sed를 시도했다 | awk, awk | sed, sed | sed, awk | awk. 그들 모두는 실패합니다. 그래서 나는 그것이 모든 사람들에게 잘 알려져 있다고 생각합니다.piping sed | awk 또는 awk |
데이터는 여러 줄의 텍스트 블록으로 각 블록을 레코드로 처리 할 수 있습니다 (따라서 ">"구분 기호). 우리는 단지 ADV_NONCONN 블록에 필터링 후, 나는 다음 "BDADDR"또는 "RSSI"를 포함하는 전용 라인 텍스트의 블록을 필터링하고 싶습니다. 내가 아는 한, 그렇게하기 위해 별도의 작업으로 파이프해야합니다.
sudo hcidump | awk 'BEGIN {RS=">"} /ADV_NONCONN/' | sed -n -e "/bdaddr/p" -e "/RSSI/p" > log.txt
hcidump 출력 샘플 (한 "기록") : 역 실행
HCI Event: LE Meta Event (0x3e) plen 43
LE Advertising Report
ADV_NONCONN_IND - Non connectable undirected advertising (3)
bdaddr 0C:F3:EE:0D:70:89 (Public)
Flags: 0x06
Unknown type 0xff with 26 bytes data
RSSI: -62
(먼저 나오지 부를 다음 awk는) 공집합 동일한 결과를 제공한다. 내가 뭘 놓친거야?
그것은 거의 sed''에 awk''파이프 필요 결코 , 'awk' 문법은 보통 이해하기 쉽습니다. – Barmar
내가 당신에게 몇 가지 피드백을 제공 할 수 있도록 허용 : 귀하의 질문에 자신 만의 대답이 모두 혼란의 지점에 수다스러운입니다 - 그들이 더 간결하고 집중하게 고려하시기 바랍니다. – mklement0
새 이민자를위한 몇 가지 표준 조언 : 답변으로 문제가 해결되면 옆에있는 큰 체크 표시 (✓)를 클릭하고 선택 사항으로 최대 투표 (상향 투표에는 평판 포인트 15 점 이상)가 필요합니다. 다른 답변이 도움이 되었으면 최대 투표를하십시오. 수락 및 승격은 미래의 독자에게 도움이됩니다. 관련 도움말 센터 문서 (http://stackoverflow.com/help/someone-answers)를 참조하십시오. 질문에 대한 답변이 아직 충분하지 않은 경우 의견을 보내주십시오. 자신이 가장 좋은 해결책을 찾았다 고 생각하면 대답으로 게시하고 스스로 수락하십시오. – mklement0