Viết vào một dòng cụ thể của một tệp trong một vòng lặp bằng cách sử dụng tập lệnh bó


0

Tôi muốn viết một số văn bản trong các dòng cụ thể của một tệp, ví dụ tôi muốn viết ở dòng 12 và 13, và tôi cũng cần phải làm điều này cứ sau 5 giây.

Làm thế nào để làm điều đó bằng cách sử dụng tập lệnh bó?


Không có cách tích hợp đơn giản nào để làm điều đó. Bạn không thể sử dụng các lệnh dựng sẵn để chỉ sửa đổi các dòng mong muốn. Điều tốt nhất bạn có thể làm với các lệnh dựng sẵn là đọc toàn bộ tệp và ghi lại ra tệp tạm thời for, sử dụng setđể giữ một bộ đếm để bạn có thể viết một cái gì đó khác với những gì trong tệp gốc, sau đó ghi đè lên bản gốc với tệp tạm thời. Bạn có thể sử dụng một công cụ bên thứ ba bên ngoài?
Synetech

Câu trả lời:


0

nếu bạn có khả năng cài đặt cygwin hoặc msys thì bạn có thể sử dụng sed script, ví dụ:

while :; do sleep 5; sed -e "12s/.*/replaced/" somefile.txt; done

sẽ thay thế dòng 12 của somefile.txt bằng "thay thế" cứ sau 5 giây


0

Có thể và thú vị là cách đơn giản nhất (imho) để làm điều đó là sử dụng các công cụ * nix, sed từ dự án GnuWin32 trong trường hợp này. Với điều đó bạn làm như sau cmd.exe:

\path\to\sed.exe -i -e '12s/.*/replaced/' \path\with\files\*
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.