Верны ли эти выходные данные?
1.056000e+0 5.000000e-1 2.454400e-3 2.914800e-2 8.141500e-6
2.043430e+1 5.000000e-1 2.750500e-3 2.698100e-2-2.034300e-4
3.829842e+1 5.000000e-1 1.969923e-2 2.211364e-2 9.499900e-6
4.168521e+1 5.000000e-1 1.601262e-2 3.030919e-2-3.372000e-6
6.661784e+1 5.000000e-1 5.250575e-2 3.443669e-2 2.585500e-5
7.278104e+1 5.000000e-1 2.137055e-2 2.601701e-2 8.999800e-5
9.077287e+1 5.000000e-1 1.320498e-2 2.961020e-2-1.011600e-5
9.248130e+1 5.000000e-1 3.069610e-3 2.786329e-2-6.317000e-5
1.049935e+2 5.000000e-1 4.218794e-2 3.321955e-2-5.097000e-6
1.216283e+2 5.000000e-1 1.432105e-2 3.077165e-2 4.300300e-5
Код:
perl -lne 's/(\.\d+)(\+|\-)/\1e\2/g; print' sample
Пояснение:
-lne
позаботьтесь о концах строк, обработайте каждую строку ввода, выполните следующий код
s/(\.\d+)(\+|\-)/\1e\2/g
:
s
)(.\d+)(\+|\-)
найти две группы из (точка и цифры )и (плюс или минус)\1e\2
замените их первой группой, затем e
, затем второй группой g
глобально -не останавливаться на первой подстановке в каждой строке, а обрабатывать все возможные совпадения print
напечатать строку
sample
входной файл Это добавляет пробел, если он отсутствует. На самом деле он помещает пробел между числами независимо. Т.е. если бы в каком-то случае было два пробела, в выводе был бы только один.
perl -lne 's/(\.\d+)(\+|\-)(\d+)(\s*)/\1e\2\3 /g; print' sample
Большая часть похожа на предыдущую. Новым является группа (\d+)
номер 3 и группа (\s*)
номер 4. *
здесь означает необязательный. В замене не используется \4
. Вместо этого есть место.
Вывод такой:
1.056000e+0 5.000000e-1 2.454400e-3 2.914800e-2 8.141500e-6
2.043430e+1 5.000000e-1 2.750500e-3 2.698100e-2 -2.034300e-4
3.829842e+1 5.000000e-1 1.969923e-2 2.211364e-2 9.499900e-6
4.168521e+1 5.000000e-1 1.601262e-2 3.030919e-2 -3.372000e-6
6.661784e+1 5.000000e-1 5.250575e-2 3.443669e-2 2.585500e-5
7.278104e+1 5.000000e-1 2.137055e-2 2.601701e-2 8.999800e-5
9.077287e+1 5.000000e-1 1.320498e-2 2.961020e-2 -1.011600e-5
9.248130e+1 5.000000e-1 3.069610e-3 2.786329e-2 -6.317000e-5
1.049935e+2 5.000000e-1 4.218794e-2 3.321955e-2 -5.097000e-6
1.216283e+2 5.000000e-1 1.432105e-2 3.077165e-2 4.300300e-5
Похоже, PrivateMounts
теперь по умолчанию равно yes
.
Это исправило это для меня:
sudo systemctl edit systemd-udevd
Добавьте в службу следующее:
[Service]
PrivateMounts=no
Затем перезапуститеudevd
:
sudo systemctl restart systemd-udevd
Теперь usbmount
снова работает для меня (диски подключены к /media/usb*
как и ожидалось ).
Зачет ответа:https://raspberrypi.stackexchange.com/a/100375/45183
Дополнительная литература:https://github.com/systemd/systemd/issues/9873
Последняя версия usbmount (0.24 )работает без модификации служебных файлов из коробки.
https://github.com/rbrito/usbmount/issues/25#issuecomment-517643716
К сожалению, на момент написания этой статьи версия 0.24 доступна только на GitHub.