¿Por qué el corte no corta en la columna derecha?

¿Por qué el corte no corta en la columna derecha?
# 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
# 

De esto simplemente no puedo entender algunas líneas (ejecutándolas manualmente...):

# 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
# 

¿Por qué "cortar" hace tal cosa? Le pedí que cortara a 63 caracteres. Pero a veces da líneas más largas que 63, lo que puedo probar seleccionando posteriormente manualmente la salida, poniéndola en un eco y usando "| wc -c". ¿Quizás haya un error en el comando "cortar" con respecto a los espacios?

Para la primera línea manual de ejemplo, el script superior da 64, pero al verificarlo manualmente se revela que en realidad es 69.

Respuesta1

Tienes pestañas ahí; cada pestaña cuenta como un carácter desde cutel punto de vista de, pero puede ocupar más espacio que el de la pantalla. Es más, ocupa una cantidad que varía según en qué parte de la línea sale...

Cada línea que parece tener más de 64 caracteres tiene un espacio correspondiente que se alinea con un tabulador (ocho caracteres en la mayoría de los entornos en lo que va del siglo):

3"fcALD`&L\#Ls7fP!Gs9Ksjv\)     ?Fm9]R#oRlEb%&=R{-zRvRE /})^uM:H9sq
                           ^ tab here
                                ^ tabstop here
1234567812345678123456781234567812345678123456781234567812345678

Cuando copió y pegó el resultado de su segundo conjunto de medidas, los espacios a los que se habían expandido las pestañas se copiaron, por lo que wc -clos contó.

información relacionada