Điểm:6

Đầu với một hành vi kỳ lạ

lá cờ ua

tôi đã tải về một tập tin warc từ Thu thập thông tin chung trong Ubuntu 18.04. Sau khi giải nén nó bằng gzip, tôi đã cố gắng lấy một đoạn của tệp bằng cách sử dụng cái đầu. Lần đầu tiên tôi thử:

đầu -c 29 CC-MAIN-20210620114611-20210620144611-00436.warc

Nó tạo ra kết quả như mong đợi, xuất ra 29 byte đầu tiên của tệp:

CHIẾN TRANH/1.0
Loại WARC: warcinfo

Nhưng, nếu thay vì 29, tôi sử dụng 30, nó sẽ tạo ra kết quả mà tôi không mong đợi:

đầu -c 30 CC-MAIN-20210620114611-20210620144611-00436.warc

Đầu ra:

CHIẾN TRANH/1.0

Đây chỉ là 10 byte đầu tiên của tệp, không phải 30 byte đầu tiên. Nếu tôi sử dụng đầu -c 31, kết quả là mong đợi trở lại một lần nữa. Tôi không biết liệu đây có phải là lỗi hay có chi tiết nào về cách thức hoạt động của head mà tôi không biết.

user7761803 avatar
lá cờ sa
Nếu bạn muốn xem chính xác điều gì đang xảy ra, hãy chuyển đầu ra sang hexdump, với nội dung như `head -c 30 CC-MAIN-20210620114611-20210620144611-00436.warc | hexdump -Cv`
Điểm:17
lá cờ hr

Các cái đầu lệnh gần như chắc chắn xuất ra số byte được yêu cầu, tuy nhiên những byte đó là gì đang ảnh hưởng đến cách chúng được hiển thị trong thiết bị đầu cuối của bạn.

Cụ thể, tệp được nén bằng súng của bạn gần như chắc chắn có kết thúc dòng CRLF kiểu DOS, với CR ở byte 30 và LF ở byte 31. Khi bạn thực hiện đầu -c29, đầu ra của đầu loại trừ cả hai byte kết thúc dòng và bạn sẽ thấy một cái gì đó giống như

yourname@computer:~$ head -c29 file.warc
CHIẾN TRANH/1.0
Loại WARC: responseyourname@computer:~$

với dấu nhắc trình bao của bạn ngay sau byte thứ 29. khi bạn làm đầu -c31, bạn chụp cả CR và LF, và đầu ra trông giống như

yourname@computer:~$ head -c31 file.warc
CHIẾN TRANH/1.0
Loại WARC: phản hồi
tên của bạn@máy tính:~$

Tuy nhiên khi bạn làm đầu -c30, đầu ra chứa CR kết thúc nhưng không chứa LF theo sau nó - con trỏ được gửi trở lại vị trí 0, nhưng được để lại trên cùng một dòng của thiết bị đầu cuối, sau đó nó được ghi đè bởi dấu nhắc trình bao của bạn:

yourname@computer:~$ head -c31 file.warc
CHIẾN TRANH/1.0
tên của bạn@máy tính:~$

Nếu dòng dài hơn lời nhắc của bạn, bạn sẽ thấy các ký tự từ tệp hiện ra ngoài phần cuối. Nếu là của bạn PS1 dấu nhắc trống, thì bạn sẽ thấy đầu ra đầy đủ như mong đợi.

lá cờ br
Hoặc, thực tế hơn, chỉ cần sử dụng `head -c 30 filename ; tiếng vang`

Đăng câu trả lời

Hầu hết mọi người không hiểu rằng việc đặt nhiều câu hỏi sẽ mở ra cơ hội học hỏi và cải thiện mối quan hệ giữa các cá nhân. Ví dụ, trong các nghiên cứu của Alison, mặc dù mọi người có thể nhớ chính xác có bao nhiêu câu hỏi đã được đặt ra trong các cuộc trò chuyện của họ, nhưng họ không trực giác nhận ra mối liên hệ giữa câu hỏi và sự yêu thích. Qua bốn nghiên cứu, trong đó những người tham gia tự tham gia vào các cuộc trò chuyện hoặc đọc bản ghi lại các cuộc trò chuyện của người khác, mọi người có xu hướng không nhận ra rằng việc đặt câu hỏi sẽ ảnh hưởng—hoặc đã ảnh hưởng—mức độ thân thiện giữa những người đối thoại.