เขียนไปยังบรรทัดที่ระบุของไฟล์ในลูปโดยใช้ชุดสคริปต์


0

ฉันต้องการเขียนข้อความในบรรทัดเฉพาะของไฟล์เช่นฉันต้องการเขียนในบรรทัดที่ 12 และ 13 และฉันต้องทำทุก 5 วินาที

จะทำอย่างไรโดยใช้สคริปต์แบทช์


ไม่มีวิธีง่ายๆในตัวในการทำเช่นนั้น คุณไม่สามารถใช้คำสั่งในตัวเพื่อแก้ไขเฉพาะบรรทัดที่ต้องการ วิธีที่ดีที่สุดที่คุณสามารถทำได้ด้วยคำสั่งในตัวคือการอ่านไฟล์ทั้งหมดและเขียนกลับไปที่ไฟล์ชั่วคราวด้วยforใช้setเพื่อเก็บตัวนับเพื่อให้คุณสามารถเขียนสิ่งต่าง ๆ ที่อยู่ในไฟล์ต้นฉบับแล้วเขียนทับ ต้นฉบับพร้อมไฟล์ temp คุณสามารถใช้เครื่องมือภายนอกอื่นได้หรือไม่
Synetech

คำตอบ:


0

หากคุณมีความเป็นไปได้ที่จะติดตั้ง cygwin หรือ msys คุณสามารถใช้สคริปต์ sed เช่น:

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

จะแทนที่บรรทัดที่ 12 ของ somefile.txt ด้วย "แทนที่" ทุก 5 วินาที


0

เป็นไปได้และวิธีที่ง่ายที่สุด (imho) ที่น่าสนใจคือการใช้เครื่องมือ * nix ซึ่งมาจากโครงการ GnuWin32ในตัวอย่างนี้ เมื่อคุณทำสิ่งต่อไปนี้จากcmd.exe:

\path\to\sed.exe -i -e '12s/.*/replaced/' \path\with\files\*
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.