ฉันมีเอกสารคำสั่งยาว ใช้ 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 วินาที