Puncte:6

Cap cu un comportament ciudat

drapel ua

Am descărcat un fișier warc din Common Crawl în Ubuntu 18.04. După ce l-am decomprimat cu gzip, am încercat să obțin un segment al fișierului folosind cap. prima data am incercat:

cap -c 29 CC-MAIN-20210620114611-20210620144611-00436.warc

A produs rezultatul așteptat, scoțând primii 29 de octeți ai fișierului:

WARC/1.0
WARC-Type: warcinfo

Dar, dacă în loc de 29, folosesc 30, acesta produce un rezultat la care nu mă așteptam:

cap -c 30 CC-MAIN-20210620114611-20210620144611-00436.warc

Ieșire:

WARC/1.0

Aceștia sunt doar primii 10 octeți ai fișierului, nu primii 30. Dacă folosesc cap -c 31, rezultatul este înapoi așteptat din nou. Habar n-am dacă acesta este o eroare sau dacă există un detaliu despre cum funcționează capul de care nu sunt conștient.

user7761803 avatar
drapel sa
Dacă doriți să vedeți exact ce se întâmplă, trimiteți ieșirea către hexdump, cu ceva de genul `head -c 30 CC-MAIN-20210620114611-20210620144611-00436.warc | hexdump -Cv`
Puncte:17
drapel hr

The cap comanda este aproape sigur scoateți numărul solicitat de octeți, totuși ceea ce acești octeți sunt afectează modul în care sunt afișate în terminalul dvs.

Mai exact, fișierul dvs. comprimat în gunzip are aproape sigur sfârșituri de linie CRLF în stil DOS, cu un CR la octetul 30 și LF la octetul 31. Când o faceți cap -c29, ieșirea head exclude ambii octeți de sfârșit de linie și vedeți ceva de genul

numele tau@computer:~$ head -c29 fisier.warc
WARC/1.0
WARC-Type: răspunsulnumele tau@computer:~$

cu promptul dvs. shell care urmează direct după al 29-lea octet. Când o faci cap -c31, capturați atât CR cât și LF, iar rezultatul arată ca

numele tau@computer:~$ head -c31 fisier.warc
WARC/1.0
WARC-Type: răspuns
numele tau@computer:~$

Cu toate acestea, când o faci cap -c30, ieșirea conține CR final, dar nu LF-ul său următor - cursorul este trimis înapoi în poziția 0, dar este lăsat pe aceeași linie a terminalului, unde este apoi suprascris de promptul shell:

numele tau@computer:~$ head -c31 fisier.warc
WARC/1.0
numele tau@computer:~$

Dacă linia este mai lungă decât solicitarea dvs., veți vedea caractere din fișier care ies dincolo de sfârșit. Dacă ale tale PS1 promptul era gol, atunci ați fi văzut rezultatul așteptat complet.

drapel br
Sau, mai practic, utilizați doar `head -c 30 filename ; ecou`

Postează un răspuns

Majoritatea oamenilor nu înțeleg că a pune multe întrebări deblochează învățarea și îmbunătățește legătura interpersonală. În studiile lui Alison, de exemplu, deși oamenii își puteau aminti cu exactitate câte întrebări au fost puse în conversațiile lor, ei nu au intuit legătura dintre întrebări și apreciere. În patru studii, în care participanții au fost implicați în conversații ei înșiși sau au citit transcrieri ale conversațiilor altora, oamenii au avut tendința să nu realizeze că întrebarea ar influența – sau ar fi influențat – nivelul de prietenie dintre conversatori.