ฉันจะลบอักขระ 27 ตัวแรกจากทุกบรรทัด Notepad ++ ได้อย่างไร


59

ฉันมีไฟล์บันทึกและต้องลบ 27 อักขระแรกออกทุกบรรทัด คุณจะมีสายเช่นนี้:

2011-09-25 01:25:29 [INFO] <Exazoro> wazup

แต่มันจะต้องเป็นเช่นนี้:

<Exazoro> wazup

คุณสามารถใช้ความแตกต่างของคำสั่ง unix cut จาก unxutils หรือ busybox เพื่อทำสิ่งนั้นได้ง่ายขึ้น - ต้องเป็น Notepad หรือไม่?
Journeyman Geek

@ JourneymanGeek มันไม่จำเป็นต้องเป็นแผ่นจดบันทึก ++ มันแค่ส่วนใหญ่ที่ฉันใช้และมันมีการรองรับมาโครและปลั๊กอินดังนั้นฉันเดาว่าอาจมีบางอย่างที่ต้องทำ
Mythrillic

คำตอบ:


78

ใช้การค้นหานิพจน์ปกติค้นหา^...........................และแทนที่ด้วย(สตริงว่าง)

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

แต่น่าเสียดายที่ Notepad ++ ไม่สนับสนุนการนับซ้ำเช่น^.{27}- The เอกสาร regexp SciTEใช้ที่นี่เป็นอย่างดี


หรือใช้ตัวเลือกหลายสายสี่เหลี่ยม (กดAltขณะที่การเลือก) เพื่อเลือกเหล่านี้ 27 ตัวอักษรแรกในทุกสายแล้วกดหรือDeleteBackspace

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


การใช้เครื่องมือ Unix (เช่น Cygwin, UnxUtils) คุณสามารถใช้cut -c28-หรือsed -E "s|^.{27}||"แทน อย่างน้อยนี่คือสายคำสั่ง Linux ที่คุณต้องการใช้ ...


24
Alt + Shift + ขวาเพื่อเลือกอักขระ 27 ตัวในแถวแรกจากนั้น Pg Dn ในขณะที่ยังคงกด Alt + Shift ค้างไว้ควรทำเช่นนั้น
icc97

1
สำหรับ regex นั้น Notepad ++ ไม่ปฏิบัติตามกฎ regex มาตรฐานทั้งหมดดังนั้นฉันไม่แปลกใจที่คุณไม่สามารถทำให้มันใช้งานได้ และเนื่องจากดูเหมือนว่าอักขระ 27 ตัวแรกเป็นวันที่เวลาและระดับข้อผิดพลาดอาจเป็นไปได้ว่า regex ที่ให้ข้อมูลมากขึ้นเช่น^[0-9\-]+ [0-9:]+ \[[A-Z]+\]
MBraedley

4
รักการAltเลือกรูปสี่เหลี่ยมผืนผ้า !!
Gromer

การเลือก Alt ง่ายและสะดวก ขอบคุณ Daniel Beck
Uday Kiran Thummalapalli

1
ว้าว! ขอบคุณสำหรับที่ปลายเลือกรูปสี่เหลี่ยมผืนผ้า ... ผมไม่ได้รู้ว่าสิ่งที่ต้องการที่มีอยู่ ...
Fr0zenFyr

19

ใน Notepad ++ เวอร์ชันใหม่กว่าคุณสามารถใช้จำนวนการทำซ้ำได้ เพียงแทนที่^.{1,27}ด้วยสตริงว่าง


7
แน่นอนถ้ามันรับประกันว่าจะตรง 27 ^.{27}ตัวอักษรเพียงแค่ใช้
Schism

5

ด้านล่างเป็นวิธีมาโคร นี่เป็นวิธีที่ใช้งานง่ายสำหรับผู้ที่ไม่ใช้เทคนิค:

1) วางเคอร์เซอร์บนบรรทัดแรก (ตำแหน่งเคอร์เซอร์ใด ๆ )

2) คลิก: มาโคร -> เริ่มการบันทึก

3) ทำกิจกรรมกดปุ่มต่อไปนี้:

* Press the Home key  
* Press Delete key 27 times (till you reach the intended character)
* Press down arrow button. 

4) คลิก: มาโคร -> หยุดการบันทึก

5) คลิก: เรียกใช้มาโครหลายครั้ง -> เลือกเรียกใช้จนกว่าจะสิ้นสุดไฟล์ -> คลิกเรียกใช้


4

UPD: ตอนนี้ Notepad ++ จะสนับสนุนการทำซ้ำ: ^.{27} แต่ตอนนี้คุณ notepad ++ จะทำซ้ำลบอักขระจนกระทั่งมากกว่า 27 เพื่อหลีกเลี่ยงปัญหานี้คุณสามารถใช้นิพจน์ต่อไปนี้:

  • หาอะไร: ^.{27}(.*)$
  • แทนที่ด้วย: $1

มันทำงานได้อย่างสมบูรณ์แบบ!
รูดี้

2

การปรับปรุงเล็กน้อยในคำตอบ Daniel Beck:
ใช้การค้นหานิพจน์ปกติค้นหา:

^...........................(.*.\r\n) 

และแทนที่ด้วย:

\1

0

อาจเพียงแค่เลือกข้อความด้วยปุ่มซ้าย ALT + เมาส์


คุณสามารถอธิบายเพิ่มเติมเกี่ยวกับเรื่องนี้อีกเล็กน้อยได้ไหม?
โตโต้

0

ALT + SHIFT + การเลือกเมาส์ (ALT เท่านั้นไม่ทำงาน)

ชี้ไปที่จุดเริ่มต้นของไฟล์ไปที่จุดสิ้นสุด ALT + SHIFT แล้วชี้ไปที่ตำแหน่งที่คุณต้องการ ...

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