ฉันมีเอกสารคำสั่งยาว ใช้ Notepad ++ หรือ regex ฉันต้องการลบทุกบรรทัดที่มี "ความช่วยเหลือ" รวมถึง keyboard_help ฯลฯ
สิ่งนี้สามารถทำได้?
ฉันมีเอกสารคำสั่งยาว ใช้ Notepad ++ หรือ regex ฉันต้องการลบทุกบรรทัดที่มี "ความช่วยเหลือ" รวมถึง keyboard_help ฯลฯ
สิ่งนี้สามารถทำได้?
คำตอบ:
สิ่งนี้สามารถทำได้ด้วย Notepad ++:
ทำเครื่องหมายที่บรรทัดบุ๊กมาร์ก (หากไม่มีการปรับปรุงแท็บมาร์คเป็นเวอร์ชันปัจจุบัน)
ป้อนคำค้นหาของคุณและคลิกทำเครื่องหมายทั้งหมด
ตอนนี้ไปที่เมนูค้นหา →ที่คั่น → ลบบรรทัดที่คั่นไว้
เสร็จสิ้น
cd
เข้าสู่เส้นทางและพิมพ์คำสั่งที่ซับซ้อน (กังวลเกี่ยวกับไวยากรณ์ ไม่มีการสำรองข้อมูล) [ อย่าเข้าใจฉันผิดฉันใช้คำสั่งคอนโซลตลอดเวลาสำหรับสิ่งอื่น ๆ แต่สำหรับบางสิ่งเช่นนี้มันเป็นเพียง overkill]
BOOKMARK LINE
เป็นสิ่งสำคัญที่นี่มิฉะนั้นจะไม่ทำงาน!
อีกวิธีในการทำเช่นนี้ใน Notepad ++ คือทั้งหมดในกล่องโต้ตอบค้นหา / แทนที่และด้วย regex:
Ctrl+ hเพื่อเปิดกล่องโต้ตอบค้นหาแทนที่
ในFind what:
กล่องข้อความรวม regex ของคุณ: .*help.*\r?\n
(ซึ่ง\r
เป็นตัวเลือกในกรณีที่ไฟล์ไม่มีจุดสิ้นสุดบรรทัด Windows)
เว้นReplace with:
ช่องข้อความว่างไว้
ตรวจสอบให้แน่ใจว่าได้เลือกปุ่มตัวเลือกนิพจน์ทั่วไปในพื้นที่โหมดการค้นหา จากนั้นคลิกReplace All
และ voila! ลบบรรทัดทั้งหมดที่มีข้อความค้นหาของคุณhelp
แล้ว
ใช้งานง่ายด้วยgrep
:
grep -v help filename
ผนวก> newFileName
เพื่อเปลี่ยนทิศทางเอาต์พุตไปยังไฟล์ใหม่
เพื่อชี้แจงให้ชัดเจนพฤติกรรมปกติจะพิมพ์เส้นบนหน้าจอ หากต้องการไพพ์ไปยังไฟล์>
สามารถใช้ ดังนั้นในคำสั่งนี้:
grep -v help filename > newFileName
grep
เรียกgrep
โปรแกรมอย่างชัดเจน-v
เป็นแฟล็กที่จะกลับด้าน โดย defaulf grep
พิมพ์บรรทัดที่ตรงกับรูปแบบที่กำหนด ด้วยการตั้งค่าสถานะนี้มันจะพิมพ์บรรทัดที่ไม่ตรงกับรูปแบบhelp
เป็นรูปแบบที่จะจับคู่filename
เป็นชื่อของไฟล์อินพุต>
เปลี่ยนเส้นทางผลลัพธ์ไปยังรายการต่อไปนี้newFileName
ไฟล์ใหม่ที่จะบันทึกผลลัพธ์ดังที่คุณอาจสังเกตเห็นว่าคุณจะไม่ลบสิ่งต่าง ๆ ในไฟล์ของคุณ grep
จะอ่านมันและไฟล์อื่นจะถูกบันทึก, แก้ไขตาม
grep
ติดตั้ง อย่างไรก็ตามฉันขอแนะนำให้คุณติดตั้ง GNU grep แน่นอนว่ามันจะทำงานบน Windows ได้และเป็นเครื่องมือที่มีประโยชน์จริงๆ
>
grep -v help filename > outputFileName
คุณสามารถทำได้โดยใช้ sed: sed '/help/ d' < inputFile > outputFile
sed '/^help/ d'
ควรจะทำงาน ^
หมายถึงการเริ่มต้นของบรรทัด
sed
และgrep
ค้นหาด้วยนิพจน์ทั่วไป:
^.*(help).*$
\n\n
แทนที่ด้วย `` (ไม่มีอะไร)
หากคุณบน Windowsfindstr
ลอง ไม่จำเป็นต้องใช้เครื่องมือของบุคคลที่สาม:
findstr /V /L "searchstring" inputfile.txt > outputfile.txt
รองรับ regex ด้วย! เพียงอ่านความช่วยเหลือของเครื่องมือfindstr /?
แค่อ่านความช่วยเหลือของเครื่องมือ
ป.ล. ถ้าคุณต้องการทำงานกับตัวใหญ่ตัวใหญ่ไฟล์ (เช่นไฟล์บันทึก 400 MB) ตัวแก้ไขข้อความไม่ได้มีประสิทธิภาพด้านหน่วยความจำมากนักเนื่องจากมีคนชี้ให้เห็นแล้วเครื่องมือบรรทัดคำสั่งเป็นวิธีที่จะไป แต่ไม่มี grep บน Windows ดังนั้น ...
ฉันใช้ไฟล์ล็อกขนาด 1 GB และใช้เวลา 3 วินาที