Если вы используете systemd, вы можете запустить версию BlueZ, используяsystemctl
:
sudo systemctl status bluetooth
Будет выведено что-то вроде этого:
bluetooth.service - Bluetooth service
Loaded: loaded (/lib/systemd/system/bluetooth.service; enabled;
vendor preset: enabled)
Active: active (running) since Wed 2018-07-25 13:00:52 UTC; 14min ago
Docs: man:bluetoothd(8)
Main PID: 471 (bluetoothd)
Status: "Running"
CGroup: /system.slice/bluetooth.service
└─471 /usr/libexec/bluetooth/bluetoothd
Jul 25 13:00:52 raspberrypi systemd[1]: Starting Bluetooth service...
Jul 25 13:00:52 raspberrypi bluetoothd[471]: Bluetooth daemon 5.50
Jul 25 13:00:52 raspberrypi systemd[1]: Started Bluetooth service.
Jul 25 13:00:52 raspberrypi bluetoothd[471]: Starting SDP server
Jul 25 13:00:52 raspberrypi bluetoothd[471]: Bluetooth management interface 1.14 initialized
Таким образом, вы можете быть на 100 % уверены, что используете правильную версию.
Вы можете попробовать следующую awk
программу:
awk -F':' -v OFS=':' 'NR==FNR{map[$2]=$1} NR>FNR && ($5 in map) {$4=map[$5]} NR>FNR' names.txt database.txt
Сначала будет сгенерирована база данных значений ключа -в ассоциативном массиве map
при разборе первого файла (, гдеNR==FNR
).
Затем при синтаксическом анализе второго файла он проверит, появляется ли 5-е поле($5
)в map
, и если да, то заменит 4-е поле соответствующим значением, map[$5]
.
Он будет печатать выходные строки только при обработке второго файла (, указанного условием NR>FNR
вне блоков действий ).
Поскольку оба файла имеют разделитель :
-, разделители полей ввода и вывода установлены на:
(команда -параметры строки-F':' -v OFS=':'
).