Это можно сделать с помощью идиоматического awk:
awk '$1=$1' RS= OFS= infile
Выход:
timestamp=201706291035.....;line 2;line 3;line 4;line 5;line 6;line 7;
timestamp=201706291038.....;line 2;line 3;line 4;line 5;line 6;
Здесь много всего упаковано. В основном есть три шага:
RS
). FS
). OFS
)используется в качестве разделителя полей. Когда awk анализирует входные данные, действует несколько неявных правил. Данные считываются по одной записи за раз, записи разделяютсяRS
(по умолчанию\n
). Когда RS
пусто, как в приведенном выше примере, пустая строка разделяет записи. Таким образом, каждый раздел считывается как запись.
Чтобы заставить awk
заменить FS
на OFS
, мы устанавливаем первое поле $1
на себя.
Как отметил steeldriver , ОП хочет удалить конечные точки с запятой -. Беззастенчиво скопировано:
awk '{ sub(/;$/,"",$NF); $1=$1 } 1' RS= OFS= infile
Как сказано вman udev
:
RUN{type}
Add a program to the list of programs to be executed after
processing all the rules for a specific event, depending on
"type":
"program"
Execute an external program specified as the assigned
value. If no absolute path is given, the program is
expected to live in /lib/udev; otherwise, the absolute
path must be specified.
Вы также можете проверить, какие udev
журналы:
Aug 11 21:57:43 ja-VirtualBox systemd-udevd[2998]: failed to execute '/lib/udev/./scripts/icleverkeybindings.sh' './scripts/icleverkeybindings.sh': No such file or directory
Или не -системы systemd:
[769712.027218] udevd[13015]: failed to execute '/lib/udev/./scripts/icleverkeybindings.sh' './scripts/icleverkeybindings.sh': No such file or directory
При этом вы должны либо пройти абсолютный путь к icleverkeybindings.sh
в вашем правиле udev примерно так:
ACTION=="add", SUBSYSTEM=="bluetooth", RUN+="/path/to/icleverkeybindings.sh"
или поместите icleverkeybindings.sh
в /lib/udev
и просто используйте имя файла в правиле udev:
ACTION=="add", SUBSYSTEM=="bluetooth", RUN+="icleverkeybindings.sh"
В обоих случаях необходимо убедиться, что icleverkeybindings.sh
имеет исполняемый бит, потому что в противном случае:
Aug 11 22:07:49 ja-VirtualBox systemd-udevd[3345]: failed to execute '/lib/udev/icleverkeybindings.sh' 'icleverkeybindings.sh': Permission denied
Aug 11 22:07:49 ja-VirtualBox systemd-udevd[3325]: Process 'icleverkeybindings.sh' failed with exit code 2.