วิธีลบเส้นคี่ทุกเส้นในแผ่นจดบันทึก ++


29

ฉันพยายามแก้ไขเอกสารที่มี 20,000 บรรทัด ฉันต้องลบทุกบรรทัดคี่พูดเช่น:

Apple
Monkey
Orange
Lion
fruit
animal

ฉันจะลบอักขระของแต่ละบรรทัดคี่ในเอกสารได้อย่างไร


คุณหมายถึงอะไรโดยใช้เส้นคี่? คุณหมายถึงต้องการลบคำที่ไม่ต้องการออกจากเอกสารทั้งหมดหรือไม่?
antzshrek

4
ทุกเส้นที่มีเลขคี่เช่น 1,3,5,7,9,11,13,15 .... เป็นต้นไป
Nithin N

1
ลองแทนที่ด้วยบรรทัดใหม่ (regexp): [\ n. + \ n]
Art Gertner

@ArtGertner ฉันพยายามกับการแสดงออกมันไม่ทำงาน
Nithin N

1
ฉันบันทึกแมโครโง่ ๆ : ลูกศรลง, ลูกศรเลื่อนลง, เดล
chingNotCHing

คำตอบ:


23

คุณสามารถค้นหาและแทนที่ด้วย:

  • เปิดไดอะล็อกแทนที่ ( Ctrl+ H)
  • เลือก "นิพจน์ทั่วไป"
  • หาอะไร: .+\r\n(.+(\r\n|$))
  • แทนที่ด้วย:
    $1
  • กด "แทนที่ทั้งหมด"

หมายเหตุ:

  • ขึ้นอยู่กับระบบปฏิบัติการที่คุณต้องใช้\r(Mac เก่า), \n(Unix, OS X) หรือ\r\n(Windows) เพื่อให้ตรงกับจุดสิ้นสุดของบรรทัดหรือเพียงแค่ใช้\Rซึ่งควรจะทำงานได้ทุกที่ (ขอบคุณ @Aurel Bílý)
  • \n|$ จำเป็นต้องมีผลลัพธ์ที่ถูกต้องแม้ในตอนท้ายของไฟล์
  • โดยค่าเริ่มต้น Notepad ++ จะแทนที่จากตำแหน่งเคอร์เซอร์จริงจนถึงท้ายไฟล์ ตรวจสอบให้แน่ใจว่าวางเคอร์เซอร์ไว้ที่ตำแหน่งเริ่มต้นของไฟล์
    • (คุณสามารถตรวจสอบ "ล้อมรอบ" แต่ในกรณีนั้นมันจะลบเส้นเคอร์เซอร์ของคุณก่อนแทนที่จะมองหาเส้นคี่)

ป้อนคำอธิบายภาพที่นี่


มันใช้งานได้ แต่มันไม่ได้ทำการแก้ไขเส้นเลขคี่ชุดแรกพูดตั้งแต่ 1 ถึง 15
Nithin N

เปลี่ยนสกรีนช็อตด้วยการทำงานที่มากกว่าเดิมของหน้าต่างแทนที่
Biswapriyo

11
โปรดทราบว่า\rในตอนท้ายของบรรทัดมีน้อยมาก - มันถูกใช้ใน Mac OS จริง ๆ แล้ว แต่เป็นรุ่น pre-OS-X แบบคลาสสิก ใน OS X เป็นต้นไปการสิ้นสุดของบรรทัดจะ\nคล้ายกับ Unix ที่มีสติ นอกจากนี้ยัง\Rเป็นการดีกว่าสำหรับการจับคู่การลงท้ายบรรทัดใด ๆ
Aurel Bílý

@ AurelBílýนั้นจริง แต่ Notepad ++ จะทำงานบน windows เท่านั้นดังนั้นการพกพาที่นี่จึงไม่เป็นปัญหามากนัก
Rob

18
  • Ctrl+H
  • หาอะไร: .+\R(.+)
  • แทนที่ด้วย: $1
  • Replace all

คำอธิบาย:

.+      : 1 or more any character but newline
\R      : any kind of linebreak (ie. \r, \n, \r\n)
(       : start group 1
  .+    : 1 or more any character but newline
)       : end group 1
  • ตรวจสอบการแสดงออกปกติ
  • อย่าตรวจสอบ . matches newline

ตัวอย่างผลลัพธ์ที่ได้รับ:

Monkey
Lion
animal

@NithinN: ระวังว่าคำตอบที่ยอมรับไม่สามารถใช้งานได้กับไฟล์ linux (เช่น. linebreak \n)
Toto

7
  1. เปิดไฟล์และวางเคอร์เซอร์ข้อความของคุณที่จุดเริ่มต้นของบรรทัดแรก
  2. เมนู→ มาโครเริ่มการบันทึก
  3. กดEndปุ่มบนคีย์บอร์ด
  4. Shift+ Homeจากนั้นbackspace
  5. Down
  6. Backspace
  7. Down
  8. เมนู→ มาโครหยุดการบันทึก
  9. เมนู→ มาโครเรียกใช้มาโครหลาย ๆ ครั้ง →ทำเครื่องหมายเรียกใช้จนจบไฟล์
  10. คลิก Run

โดยทั่วไปให้ดำเนินการหนึ่งครั้งเพื่อลบบรรทัดคี่จากนั้นให้โปรแกรมทำซ้ำการกระทำจนถึงจุดสิ้นสุดของไฟล์ สิ่งนี้สามารถใช้แก้ปัญหาต่าง ๆ ได้!


1

ฉันเพิ่งตรวจสอบบนพีซีของเพื่อนร่วมงานที่ใช้ Notepad ++ จริง ๆ ลองสิ่งนี้:

ป้อนคำอธิบายภาพที่นี่


ดูเหมือนว่าฉันจะลบเส้นคู่ (2,4,6 ... ) ไม่ใช่เส้นคู่
MátéJuhász

1
ถูกต้อง. อย่างไรก็ตามการลบบรรทัดคู่นั้นทำได้ง่ายขึ้นและปัญหาสามารถแก้ไขได้ด้วยการเพิ่มบรรทัดว่างที่จุดเริ่มต้นของไฟล์
Art Gertner

@ArtGertner ควรเป็น \ r \ n. + \ r \ n ถูกแทนที่ด้วย \ r \ n
chingNotCHing

@chingNotCHing ดีมาก! ฉันได้อัปเดตคำตอบแล้ว
Art Gertner

@ArtGertner ตามที่คุณชี้ให้เห็นว่ามันใช้งานได้กับคู่สายเท่านั้น แต่สำหรับชุดข้อมูลขนาดใหญ่มันไม่ได้ทำการแก้ไขสำหรับชุดข้อมูลชุดแรกที่พูดตั้งแต่บรรทัดที่ 1-15
Nithin N
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.