แทนที่สตริงข้อความโดยอัตโนมัติหรือไม่?


0

รายละเอียดเพิ่มเติม:

ฉันมีโฟลเดอร์ที่มีข้อมูลสำหรับเกมซึ่งรหัสนั้นเป็นข้อความล้วนและสามารถปรับแต่งได้ (MUGEN) นอกเหนือจากสิ่งอื่น ๆ ทั้งหมดแล้วไฟล์ * .cns ของตัวละครแต่ละตัวจะมีข้อความต่อไปนี้

;def file for char
Life = 2334 (could be any number from 100 to 99999) ;default value is 1000
Attack = 123 (could be any number from 1 to 99999) ; 100
Defence = 157 (could be any number from 1 to 99999) ; 100

แต่แทนที่จะตั้งค่าเริ่มต้นสำหรับค่ามาตรฐาน (Life = 1000, Attack = 100, Defense = 100) พวกเขาค่อนข้างไม่สมดุลเนื่องจากตัวอัปโหลดของเกมนั้นสับสน ( สุ่ม ) เปลี่ยนค่าโดยอ้างอิงแปลก ๆ ของเขา ตอนนี้ปัญหาของฉันคือฉันต้องการรีเซ็ตค่าทั้งหมดกลับเป็นค่าเริ่มต้นโดยไม่ต้องผ่านไฟล์ * .cns ทั้งหมด (หลายร้อยอาจมากกว่า) แล้วแก้ไขบรรทัดเหล่านั้นด้วยตนเอง ฉันจะทำอย่างมีประสิทธิภาพได้อย่างไร

ฉันต้องการสิ่งที่ต้องการค้นหาเนื้อหาไฟล์* .cnsทั้งหมดในโฟลเดอร์และตรวจสอบบรรทัดที่มี * "Life = *" "Attack = *" และ "Defense = " (ไม่ต้องตรงตามตัวพิมพ์ใหญ่ - เล็ก) และแทนที่ด้วย "Life = 1000 "," Attack = 100 "... และอื่น ๆ โดยไม่สนใจว่าจำนวนที่แน่นอนจะเป็น" = ") และเป็นไปโดยอัตโนมัติมากที่สุด

ฉัน google เล็กน้อยและคิดว่า regex บางอย่างพบวิธีการแทนที่ในการแก้ไขข้อความขั้นสูงบางอย่างสามารถช่วย แต่ฉันไม่ได้รับมัน ... ทุกคนสามารถให้มือและอธิบายทีละขั้นตอนสำหรับฉันจะทำอย่างไร ขอบคุณมาก.

คำตอบ:


1

บน linux (หรือบน windows โดยใช้ cygwin) คุณสามารถใช้

find . -name '*.cns' 

เพื่อค้นหาไฟล์ทั้งหมดที่มีนามสกุล '.cns' ภายใต้ไดเรกทอรีปัจจุบัน

คุณสามารถใช้ 'sed' เพื่อแก้ไขไฟล์ "inline"

find . -name '*.cns' -exec \
sed -i~ 's/Life.*/Life = 1000/g;s/Attack.*/Attack = 100/g;s/Defence.*/Defence = 100/g' "{}" \;
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.