Я анализирую файл: < /p>
first
12:34:56:78:90
A0:CD:EF:GH:IJ
A1:CD:EF:GH:IJ
A2:CD:EF:GH:IJ
A3:CD:EF:GH:IJ
second
98:76:54:32:10
B0:CD:EF:GH:IJ
B1:CD:EF:GH:IJ
B2:CD:EF:GH:IJ
B3:CD:EF:GH:IJ
< /code>
У меня есть следующая формула для извлечения ESSID, BSSID и клиентов:
list=$(xmlstarlet sel -T -t -m '/detection-run/wireless-network' -v 'SSID/essid' -o "|" -v 'BSSID' -o "|" -v "concat(wireless-client/client-mac, ',')" -n xmll-02.kismet.netxml)
Тем не менее, в нем будет перечислено только один клиент для каждой сети:
first|12:34:56:78:90|A0:CD:EF:GH:IJ,
second|98:76:54:32:10|B0:CD:EF:GH:IJ,
< /code>
Если я удалю часть Concat, в нем будут перечислены все клиенты, разделенные пространством: < /p>
list=$(xmlstarlet sel -T -t -m '/detection-run/wireless-network' -v 'SSID/essid' -o "|" -v 'BSSID' -o "|" -v 'wireless-client/client-mac' -n xmll-02.kismet.netxml)
< /code>
first|12:34:56:78:90|A0:CD:EF:GH:IJ A1:CD:EF:GH:IJ A2:CD:EF:GH:IJ A3:CD:EF:GH:IJ
second|98:76:54:32:10|B0:CD:EF:GH:IJ B1:CD:EF:GH:IJ B2:CD:EF:GH:IJ B3:CD:EF:GH:IJ
< /code>
How do I get the clients with a comma as a delimiter? Desired output:
first|12:34:56:78:90|A0:CD:EF:GH:IJ,A1:CD:EF:GH:IJ,A2:CD:EF:GH:IJ,A3:CD:EF:GH:IJ
second|98:76:54:32:10|B0:CD:EF:GH:IJ,B1:CD:EF:GH:IJ,B2:CD:EF:GH:IJ,B3:CD:EF:GH:IJ
< /code>
EDIT: I've also tried adding -o "," Но это только добавляет запятую в самом конце:
first|12:34:56:78:90|A0:CD:EF:GH:IJ A1:CD:EF:GH:IJ A2:CD:EF:GH:IJ A3:CD:EF:GH:IJ,
second|98:76:54:32:10|B0:CD:EF:GH:IJ B1:CD:EF:GH:IJ B2:CD:EF:GH:IJ B3:CD:EF:GH:IJ,
Подробнее здесь: https://stackoverflow.com/questions/795 ... xmlstarlet
Как изменить сепаратор от пространства на запятую с XMLStarlet? ⇐ Linux
-
- Похожие темы
- Ответы
- Просмотры
- Последнее сообщение