# 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
#
이로부터 몇 줄을 이해할 수 없습니다 (수동으로 실행 ...).
# 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
#
'체'가 왜 그런 짓을 하겠나? 63자로 줄여달라고 요청했습니다. 그러나 때로는 63줄보다 긴 줄이 나오는 경우가 있는데, 나중에 수동으로 출력을 선택하고 echo에 넣고 "| wc -c"를 사용하여 이를 증명할 수 있습니다. 어쩌면 공백과 관련된 "cut" 명령에 버그가 있는 것일까요?
첫 번째 예제 수동 행의 경우 상위 스크립트는 64를 제공하지만 수동 검사에 따르면 실제로는 69입니다.
답변1
의 관점 에서 볼 때 cut
각 탭은 한 문자로 계산되지만 화면보다 더 많은 공간을 차지할 수 있습니다. 게다가 라인 내 출력 위치에 따라 차지하는 양도 달라지는데...
64자를 초과하는 각 줄에는 탭 문자에 맞춰 정렬된 해당 간격이 있습니다(금세기까지 대부분의 환경에서는 8자).
3"fcALD`&L\#Ls7fP!Gs9Ksjv\) ?Fm9]R#oRlEb%&=R{-zRvRE /})^uM:H9sq
^ tab here
^ tabstop here
1234567812345678123456781234567812345678123456781234567812345678
두 번째 측정 세트의 출력을 복사하여 붙여넣으면 탭 문자가 확장된 공백이 복사되므로 wc -c
해당 공백이 계산됩니다.