
# uname -mrs
OpenBSD 6.0 amd64
# RANDOMNUMBER() { /usr/bin/openssl rand -hex 64 | tr -dc 0-9 | /usr/bin/cut -c-4;}
# while true; do WTF=$(/usr/bin/strings /dev/arandom | head -$(RANDOMNUMBER) | sort -R | /usr/bin/perl -pe 's/\n//g' | /usr/bin/cut -c1-63); echo "$WTF"; echo "$WTF" | wc -c; done
!+{l^RQ-QuK=iVYC\ud#pqNw?nJ"oyizU}NI5~0\HEagHv7`/6PI$|b_1)59Aj=
64
3"fcALD`&L\#Ls7fP!Gs9Ksjv\) ?Fm9]R#oRlEb%&=R{-zRvRE /})^uM:H9sq
64
Q|Ik^.zuYu:|_DTt>)q48;[JVwX}F@yU)hu,~v=Wj*"ra'g=@#hJ$.ur\Ru'WMV
64
lTYU6V2qm;[e;.dsxW+mWqf]LCylFsY,V7+71i}/6L)m<RtuCxH6,et<i[N(NV
64
>apV:8T e3 Y<ga$h*+9>4`kanC 35OHoG%\gG8vvWU?rM%XYuV*4?UIWVvB<!U
64
#b8vw:L!OvW 73/-iUPw}Ge|$ka{'E=tkTHmzb)1syK!fSN]_As'D>KGe_k<o=
64
O5='9b}.NGChC]D{{ =^#tg7;EhzDJag`R-z/L<=LJ[h*aLI [2xPbz__+K_Bc|
64
E\AxbSAu6seR=:-uwG$h86;r\gs(Ni0%95<O.+Yts)br9xd*>b`f K!%Q_%+9I-
64
8RXi=aJL3siO!PM5l]>~(5$bgp.#Z|p1,d6au-^0`mD9+Cdk@*].05g(:1,}f"R
64
K\_a~oim<dq_^,JBjb$sYA,Icv@kOVWi2'z+us2BzW|~@l+iD3@euM|iS;"0tw&
64
bI[Aev\{[YN"a^$)j'W[\4r?Ey[ !Jn32V6`PE(6WAqL~NYg&/{J-w > _uAS}i
64
I|jm@onzPfAhK5HJq:V h<p-<_oPvS68)2L\&4)CWM|GYv0l}8= 7 ZpW wH}UR
64
i_x?KW3<v7/Pw w6>gXw7#HE]n,d4mj8'my@)*15m]dK(+9[o!h<w^ $$PS)Q4@
64
wJ1pv[3sHJrpXV=c-c{2%0A,F-.3;`M^cvV6E&|B"`@V+RYs dlS*yEqsV_ $G6
64
M_iq/+ |>*@CC4G.-?9s@;0tR^>&dh]5,sQu.8akCJU01qxiX5TUe&}=I_K;X%`
64
^C
#
Davon sind mir einige Zeilen (bei manueller Ausführung...) nicht ganz klar:
# echo '>apV:8T e3 Y<ga$h*+9>4`kanC 35OHoG%\gG8vvWU?rM%XYuV*4?UIWVvB<!U' | wc -c
69
#
# echo 'wJ1pv[3sHJrpXV=c-c{2%0A,F-.3;`M^cvV6E&|B"`@V+RYs dlS*yEqsV_ $G6' | wc -c
76
#
Warum macht „cut“ so etwas? Ich habe es angewiesen, bei 63 Zeichen zu schneiden. Aber es gibt manchmal längere Zeilen als 63 aus, was ich beweisen kann, indem ich die Ausgabe später manuell auswähle, sie in ein Echo stecke und „| wc -c“ verwende. Vielleicht gibt es einen Fehler im „cut“-Befehl bezüglich Leerzeichen?
Für die erste manuelle Beispielzeile gibt das obere Skript 64 aus, eine manuelle Überprüfung zeigt jedoch, dass es tatsächlich 69 ist.
Antwort1
Sie haben dort Tabulatoren; jeder Tabulator zählt aus cut
Sicht von als ein Zeichen, kann aber mehr Platz einnehmen als auf dem Bildschirm. Darüber hinaus nimmt er eine Menge ein, die davon abhängt, wo in der Zeile er ausgegeben wird...
Jede Zeile, die länger als 64 Zeichen ist, verfügt über eine entsprechende Lücke, die mit einem Tabulatorstopp ausgerichtet ist (in den meisten Umgebungen dieses Jahrhunderts bisher acht Zeichen):
3"fcALD`&L\#Ls7fP!Gs9Ksjv\) ?Fm9]R#oRlEb%&=R{-zRvRE /})^uM:H9sq
^ tab here
^ tabstop here
1234567812345678123456781234567812345678123456781234567812345678
Als Sie die Ausgabe für Ihren zweiten Satz Messungen kopiert und eingefügt haben, wurden die Leerzeichen kopiert, auf die die Registerkarten erweitert wurden. Daher wc -c
haben Sie stattdessen diese gezählt.