пытается запустить ./configure и ./make для ecos bintuils -

Я бы сказал, что проблема немного сложнее, чем рекламироваться. Просто синтаксический анализ dmesg для экземпляров ttyUSB* не даст вам знать, доступен ли он в настоящее время. Возможно, он был отключен.

Ниже приведено описание текущего состояния. Он делает это, ища экземпляры to ... и from ... и использует только те, где он был to ttyUSB* в конце строки.

dmesg | tac | awk '$NF~/ttyUSB[0-9]+/ && !a[$NF]++ && $(NF-1)=="to" {print $NF}'

Чтобы быстро объяснить: [!d3 ] tac меняет вход так, что мы имеем дело с последним первым $NF ~ /ttyUSB[0-9]+/ - это регулярное выражение, которое проверяет последнее поле: ttyUSB* !a[$NF]++ проверяет, что мы не видели это поле до [ f12] на предпоследнем поле, чтобы убедиться, что мы имеем дело с линиями to ....

Чтобы проверить это, я просто взял ваш вывод и удалил второе приложение. В моем примере ttyUSB2 был подключен, затем отключен и никогда не был подключен. Он не должен быть доступен.

$ cat testdmesg 
[    7.648896] usb 1-2: GSM modem (1-port) converter now attached to ttyUSB0
[    7.649091] usb 1-2: GSM modem (1-port) converter now attached to ttyUSB1
[    7.649502] usb 1-2: GSM modem (1-port) converter now attached to ttyUSB2
[17406.327030] option1 ttyUSB0: GSM modem (1-port) converter now disconnected from ttyUSB0
[17406.329670] option1 ttyUSB1: GSM modem (1-port) converter now disconnected from ttyUSB1
[17406.334036] option1 ttyUSB2: GSM modem (1-port) converter now disconnected from ttyUSB2
[90128.405694] usb 1-4: GSM modem (1-port) converter now attached to ttyUSB0
[90128.405987] usb 1-4: GSM modem (1-port) converter now attached to ttyUSB1
[90132.905458] usb 1-2: GSM modem (1-port) converter now attached to ttyUSB3
[90132.905791] usb 1-2: GSM modem (1-port) converter now attached to ttyUSB4
[90132.906541] usb 1-2: GSM modem (1-port) converter now attached to ttyUSB5
[90148.661532] usb 1-1: GSM modem (1-port) converter now attached to ttyUSB6
[90148.661828] usb 1-1: GSM modem (1-port) converter now attached to ttyUSB7
[90148.662440] usb 1-1: GSM modem (1-port) converter now attached to ttyUSB8

$ tac testdmesg | awk '$NF~/ttyUSB[0-9]+/ && !a[$NF]++ && $(NF-1)=="to" {print $NF}'
ttyUSB8
ttyUSB7
ttyUSB6
ttyUSB5
ttyUSB4
ttyUSB3
ttyUSB1
ttyUSB0

И, конечно, вы можете передать это через sort, если хотите. Вам не нужно будет uniq (или sort -u), хотя, как awk, должны были обработать обманы уже.

1
задан 31 December 2016 в 17:10

0 ответов

Другие вопросы по тегам:

Похожие вопросы: