Полагаю, это обман, но:
sed 's/.//;s/./\n/g'|sed -n '$='
Вы, безусловно, можете сократить существующую версию до:
sed -n ':c s/^a/1/; s/0a/1/; s/1a/2/; s/2a/3/; s/3a/4/; s/4a/5/; s/5a/6/; s/6a/7/; s/7a/8/; s/8a/9/; s/9a/a0/; tc; p'
Получается, используя y///
, возможно но я думаю, что это сбивает только несколько символов, и \u
не является переносимым:
sed -n '
:c;
s/^a/c/;
s/\([b-j]\)a/\u\1/;
y/BCDEFGHIJ/cdefghijk/;
s/ka/ab/;
tc;
y/bcdefghijk/0123456789/;
p
'