Hướng dẫn nodejs remove line from file - nodejs xóa dòng khỏi tệp
Tôi có tệp văn bản sau ("test.txt") mà tôi muốn thao tác trong node.js:
Tôi muốn loại bỏ dòng đầu tiên để
Hỏi ngày 9 tháng 8 năm 2016 lúc 5:52Aug 9, 2016 at 5:52
1
zr0gravity7 2.5281 Huy hiệu vàng9 Huy hiệu bạc26 Huy hiệu đồng1 gold badge9 silver badges26 bronze badges Đã trả lời ngày 9 tháng 8 năm 2016 lúc 6:21Aug 9, 2016 at 6:21
Scott Mscott mScott M 5231 Huy hiệu vàng5 Huy hiệu bạc13 Huy hiệu đồng1 gold badge5 silver badges13 bronze badges 1 Tôi chỉ bắt gặp sự cần thiết phải loại trừ một số dòng trong một tệp. Đây là cách tôi đã làm nó với một chức năng nút đơn giản.
Đã trả lời ngày 27 tháng 2 năm 2019 lúc 14:03Feb 27, 2019 at 14:03
Sử dụng thay thế
Đã trả lời ngày 17 tháng 12 năm 2020 lúc 9:30Dec 17, 2020 at 9:30
user3113626user3113626user3113626 5997 Huy hiệu bạc16 Huy hiệu Đồng7 silver badges16 bronze badges Khi một tệp phát triển kích thước (nghĩ về tệp nhật ký), tôi muốn xóa 5 dòng đầu tiên hoặc 5000 byte đầu tiên. Từ một tìm kiếm trên web, nó nói rằng tôi có thể sử dụng Lưu ý: Tôi chắc chắn đang tìm cách tránh phương pháp truyền thống để đọc toàn bộ tệp vào phân tách bộ nhớ theo các dòng, chuyển 5 đầu tiên và sau đó ghi đè lên tệp với các nội dung mới - điều này không thực sự hoạt động và có khả năng tải lên một tệp lớn trong Bộ nhớ không có Bueno. Đó không phải là một vấn đề đơn giản. Tôi không nghĩ rằng các hệ điều hành thường cung cấp tính năng này và tôi không thể nghĩ ra một cách hiệu quả để thực hiện điều này trên hầu hết các hệ thống tệp. Làm thế nào đĩa "xóa" một phần của tệp mà không phải viết lại mọi thứ? .
Đó không phải là một vấn đề đơn giản. Tôi không nghĩ rằng các hệ điều hành thường cung cấp tính năng này và tôi không thể nghĩ ra một cách hiệu quả để thực hiện điều này trên hầu hết các hệ thống tệp. Làm thế nào đĩa "xóa" một phần của tệp mà không phải viết lại mọi thứ? . Điều đó thực sự, âm thanh không hiệu quả khủng khiếp. Nhưng bạn có thể sử dụng một luồng, bỏ qua một vài dòng đầu tiên và ghi mọi thứ khác vào một tệp mới, sau đó di chuyển tệp mới vào đường dẫn của tệp gốc.
Hoặc, nếu bạn đang tìm kiếm một loại bộ đệm nhật ký tròn, bạn có thể sử dụng một addon gốc để quản lý nội dung tệp bằng cách sử dụng OK, fs.truncate tồn tại, nhưng nó cắt ngắn từ đầu đường mòn, không phải từ đầu. Đó là một lớp bao bọc mỏng xung quanh cắt ngắn2 Có thể là thời gian cho API 0Ngoài ra, chúng ta có thể quá tải cc @nodejs/fs @gireeshpunathil Làm thế nào chúng ta sẽ thực hiện nó mà không viết lại toàn bộ tệp? 1 chỉ có thể xóa từ cuối tệp.@tniessen - Hãy để tôi làm rõ: Tùy chọn 1: Triển khai 2 và phơi bày 3 Syscall cho người dùng - và để họ đối phó với sự phức tạp của việc viết ở đúng vị trí và di chuyển xung quanh con trỏ tệp.@gireeshpunathil MHHH có cắt ngắn thực sự xem xét phần bù hiện tại trong tệp không? Vì vậy, nó có thực sự loại bỏ các bộ phận trước khi bù hiện tại? Điều đó làm tôi ngạc nhiên.
@tniessen - API FS.Truncate hiện tại không; Đó là đề xuất của tôi. Nếu bạn đang nói về Syscall 1, tôi không biết làm thế nào nó được thực hiện, nhưng nó là gì, những chi tiết triển khai đó có thể được trừu tượng hóa trong API JS.
Vâng, ý tôi là hệ thống. Theo như tôi biết, nó không hỗ trợ cắt ngắn sự khởi đầu của tệp, chỉ có kết thúc. |