Если это единица измерения пользователя, используйте опцию--user-unit
:
.
journalctl -f --user-unit=test_unit@random_arguments
В противном случае отфильтруйте блок с помощью _SYSTEMD_UNIT
:
.
sudo journalctl -f _SYSTEMD_UNIT=test_unit@random_arguments
Как намекает Джефф в комментариях, вы можете использовать bc
для преобразования базы. Что касается физических игральных костей, цифры обычно от 1 до 6, в то время как дляbc
(и математики )потребуются цифры от 0 до 5, поэтому вам нужно что-то с этим сделать, либо вручную, либо с помощью чего-то вроде tr
.
Например, эта функция будет отображать111
-> 0,112
-> 1,121
-> 6 и т. д.:
f() {
echo "obase=10; ibase=6; $(echo $1 | tr 1-6 0-5)" | bc;
}
Вывод в десятичном формате, вы можете изменить это, изменив значение obase
выше. Или вы можете использовать десятичное число для другой арифметики.
Set total to 0
Repeat until no more roles:
multiply total by 6 #this has no effect the first time around the loop
role dice
add (number on dice -1) to total
См. другие ответы и комментарии
Существует несколько инструментов POSIX для преобразования базы 6 в базу 2.
Тем не менее, символы в игральных костях равны 1 2 3 4 5 6
, в то время как целое число с основанием -6 должно использовать только символы 0 1 2 3 4 5
, разница составляет 1. Любой используемый инструмент должен учитывать это. Для одной цифры это не проблема:
Самый простой — bc (или dc ). Преобразование одной цифры может быть выполнено как:
digit=5; echo "n=$digit - 1; obase=2; n" | bc
Но для нескольких бросков в одной струне,как и 31256
, его нужно ввести как десятичное число и вычесть 1 из каждой цифры (11111
, в данном случае ), а затем повторно -ввести как базовое -6 число.
$ echo "ibase=6; obase=2; $(echo "31256-11111" | bc)" | bc
101001100001
Или, как текст, вы можете преобразовать каждые 6 в 5, каждые 5 в 4 и т. д.:
$ echo "ibase=6; obase=2; $(echo "31256" | tr 123456 012345)" | bc
101001100001
Другой вариант — awk:
awk -v n=31256 '
function roll2dec(str, ret, i, c){
for (i = 1; i <= length(str); i++) {
c = substr(str, i, 1)
ret = ret * 6 + index("23456", c)
}
return ret
}
function dec2bin(dec, bin){
while (dec>0){
bin = dec%2 bin;
dec=int(dec/2)
};
return bin
}
BEGIN{
print dec2bin(roll2dec(n))
}'
101001100001