Проблема вызвана тем, что udevd
работает не в корневом сетевом пространстве имен (где сетевые адаптеры добавлены по умолчанию).
Кроме того, сетевое пространство имен udevadm monitor
также влияет на его вывод.
Почтеннаяfold
команда («написана Биллом Джоем 28 июня 1977 года» )может переносить строки:
$ printf "foobarzot\n" | fold -w 3
foo
bar
zot
Однако есть некоторые крайние случаи
BUGS Traditional roff(7) output semantics, implemented both by GNU nroff and by mandoc(1), only uses a single backspace for backing up the previous character, even for double-width characters. The fold backspace semantics required by POSIX mishandles such backspace-encoded sequences, breaking lines early. The fmt(1) utility provides similar functionality and does not suffer from that problem, but isn't standardized by POSIX.
поэтому, если в вашем вводе есть символы возврата, вам может потребоваться отфильтровать или удалить их
$ printf "a\bc\bd\be\n" | col -b | fold -w 1
e
$ printf "a\bc\bd\be\n" | tr -d "\b" | fold -w 1
a
c
d
e
Мне нравится ответ fold
, но на всякий случай с sed
вот он:
sed 's/.\{20\}/&\
/g' filename
Вы можете использовать -i
для вставки в -место.
Если у вас есть содержимое переменной, например:
var=$(head -n 50 /dev/urandom | tr -dc A-Za-z0-9)
Затем вы можете использовать цикл bash для длины переменной в кусках по 20, распечатывая каждый кусок:
for((start=1;start < ${#var}; start += 20)); do printf '%s\n' "${var:start:20}"; done
Если вы хотите, чтобы они были отдельными переменными, рассмотрите возможность присвоения вывода массиву:
readarray -t passwords < <(for((start=1;start < ${#var}; start += 20)); do printf '%s\n' "${var:start:20}"; done)
Вместо того, чтобы tr -dc
избавиться от непечатаемых -символов, я бы просто использовал base64
из coreutils:
$ base64 -w20 /dev/urandom | head -8
ckXkWvb0zJknz2zi4fRS
3Jv0dDbKiX8fef7SOfbH
QJySlGUzzhi32wvrGliK
YEiuz6v+EFaRYRMjvnJq
HCXIPiP9wmgONLRqm9uK
iHYwo5xIs8gGjQQEQBeX
8NkL4EkmOAHdmWhGvZYl
AcxD2DaTq2TZRsDL+UMx
Если проблемы с +
и /
, вы можете заменить их:
$ base64 -w20 /dev/urandom | tr +/ pq | head -8
zr7MgiEr7xBd7h9ihK30
IRNvDuT2H9HsHVq9yFqh
S1cihgfAInjfFspMNXVC
qUUwGErD7nZqtzQtLOo7
DNDp4TVWvHmbEh7HLDGX
GtqqDdEoceY8m5U7FGu0
TvGtTukm6Whr7VHN1mZG
DW5TUH525IA52zLKYACV