Используйте printf
, чтобы заполнить пробелами, затем замените пробелы выбранным символом.Некоторые примеры:
printf %-10s AABB | tr ' ' X
print AABBXXXXXX
.
printf %10s AABB | tr ' ' X
print XXXXXXAABB
.
Конечно, это работает только тогда, когда ваша строка не содержит пробелов.Чтобы вставить непечатаемые символы по их шестнадцатеричному коду, используйте строки bash c $'...'
.
printf %10s AABB | tr ' ' $'\x1f'
, которые шесть раз напечатают непечатный символ 0x1f
, за которым следует AABB
.xxd
может использоваться для проверки выходных данных:
bashpromt$ printf %10s AABB | tr ' ' $'\x1f' | xxd
00000000: 1f1f 1f1f 1f1f 4141 4242 ......AABB
Поскольку bash не может обработать нулевой байт, вам необходим немного другой синтаксис для заполнения с помощью \x00
:
bashpromt$ printf %10s AABB | tr ' ' '\0' | xxd
00000000: 0000 0000 0000 4141 4242 ......AABB