ฉันจะลบทุกอย่างหลังจากคอลัมน์แรกใน Notepad ++ ได้อย่างไร


40

ฉันพยายามกำจัดทุกอย่างหลังจากคอลัมน์ใน Notepad ++ โหมดคอลัมน์ไม่ใช่ตัวเลือก เป็นไปได้ไหม?

สิ่งที่ฉันมี:

70.97.110.40    159 ms          [n/a]                   21              
70.97.117.177   134 ms          [n/a]                   21              
70.97.120.10    75 ms           [n/a]                   21              
70.97.122.105   87 ms           www.portless.net        21              
70.97.122.106   89 ms           www.popovetsky.org      21              
70.97.122.107   95 ms           www.psmythe.net         21              
70.97.122.104   98 ms           wasabi.prostructure.com 21              
70.97.122.108   89 ms           crm.prostructure.com    21              
70.97.122.109   87 ms           internal.prostructure.com21 

สิ่งที่ฉันต้องการ:

70.97.110.40
70.97.117.177
70.97.120.10
70.97.122.105
70.97.122.106
70.97.122.107
70.97.122.104
70.97.122.108
70.97.122.109

2
แท็บคอลัมน์ถูกคั่นหรือไม่
Excellll

3
อีกหนึ่งคำถาม: ข้อมูลที่คุณต้องการเก็บรวมไว้ในช่องว่างหรือไม่?
Excellll

1
ไม่ฉันต้องการเพียง ips
Bob J

20
ทำไมคุณต้องการทำเช่นนั้นใน notepad ++ เหตุใดโหมดคอลัมน์จึงไม่ใช่ตัวเลือก
Kamil

1
คุณสามารถใช้โหมดคอลัมน์เพื่อลบคอลัมน์ที่สองไปยัง EOL จากนั้นใช้ Trim Trailing และบันทึกเพื่อกำจัดช่องว่าง
Casey Kuball

คำตอบ:


60

หากข้อมูลในคอลัมน์แรกไม่มีช่องว่างคุณสามารถใช้นิพจน์ทั่วไปค้นหาและแทนที่เพื่อรับสิ่งที่คุณต้องการ

ในโหมดนิพจน์ปกติค้นหา:

^([^ ]*).*

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

\1

สิ่งนี้ทำอะไร:

^บ่งชี้ว่าการแข่งขันใด ๆ ที่ควรเริ่มต้นที่จุดเริ่มต้นของบรรทัด
([^ ]*)เป็นนิพจน์ใด ๆ ที่ไม่มีช่องว่าง การแข่งขันเป็นโลภดังนั้นสิ่งนี้จะจับคู่ทุกอย่างจนถึงช่องว่างแรก (หรือจุดสิ้นสุดของบรรทัดใด ๆ ที่มาก่อน)
.*เป็นทุกอย่างอื่นในบรรทัด

\1อ้างถึงส่วนหนึ่งของการแข่งขันภายในวงเล็บ นั่นคือทั้งบรรทัดจะถูกแทนที่ด้วยเพียงเล็กน้อยจากคอลัมน์แรก


5
ดีใจที่ทราบว่า notepad ++ รองรับการแสดงออกปกติในการค้นหาแทนที่!
Kamil

1
Regex จะทำงานให้คุณตราบเท่าที่ข้อมูลไม่เคยมีช่องว่าง ง่ายกว่าจะเป็นคำสั่ง 'ตัด' UNIX แต่การทำคำสั่ง UNIX ภายใต้ windows เป็นปัญหา nother ทั้งหมด การตัดถูกสร้างขึ้นสำหรับสิ่งนี้และประมวลผลไฟล์ขนาดใหญ่อย่างรวดเร็วด้วยตัวคั่นคอลัมน์ที่กำหนดหรือตามจำนวนตัวอักษร
คาร์ล

31
สิ่งนี้สามารถทำได้ง่ายกว่าเพียงแค่แทนที่ ". *" (จดบันทึกพื้นที่ว่างนำหน้า) ด้วย "" (เช่นไม่มีอะไร) เพื่อลบทุกอย่างหลังจากนั้นและรวมถึงช่องว่างแรก
Fraxtil

2
@ Frxtil ขอบคุณ คุณควรโพสต์สิ่งนั้นเป็นคำตอบ คุณจะได้รับ upvote จากฉัน
Excellll

@Excellll เอาล่ะเสร็จแล้ว
Fraxtil

99

นี่คือนิพจน์ทั่วไปที่ง่ายกว่าที่คุณสามารถใช้เพื่อให้ได้เอฟเฟกต์เดียวกัน แทนที่

 .*

(สังเกตพื้นที่ชั้นนำ)

ด้วยอะไร การดำเนินการนี้จะลบทุกอย่างหลังจากและรวมถึงช่องว่างแรก สิ่งนี้จะทำงานได้ตราบใดที่ที่อยู่ IP ของคุณไม่เคยนำหน้าช่องว่างใด ๆ (เช่นในกรณีของคุณ)


8
มนุษย์ regex เป็นเวทมนต์ที่บริสุทธิ์ ฉันไม่คิดว่าฉันจะตามหามัน :)
Torben Gundtofte-Bruun

14
ตรวจสอบให้แน่ใจว่ามีการตั้งค่าสถานะ การจับคู่บรรทัดใหม่ถูกปิด
Taemyr

3
ในกรณีที่อาจเป็นแท็บแทนที่จะเป็นช่องว่างคุณสามารถใช้[ \t].*
Cornstalks

4
@Cornstalks \s.*สั้นกว่า แม้อาจจะใช้\s+.*เพื่อให้ตรงกับจำนวนข้อของช่องว่างตอนนี้ที่เรากำลังเข้ารหัส defensively
Anko

1
@ jpmc26 ตราบใดที่คุณไม่ได้พูดว่า "regex" และ "ง่าย" ในหนึ่งประโยค :)
Torben Gundtofte-Bruun

39

หากคุณใช้ Windows และหากคุณไม่สนใจช่องว่างต่อท้าย (คุณสามารถค้นหา / แทนที่ได้ในภายหลัง) ให้ใช้คุณสมบัติBlock Select :

  1. กดAltคีย์
  2. ใช้เมาส์เลือกส่วนที่จะลบ (บล็อคข้อความทั้งหมด)
  3. ปล่อยAltกุญแจ
  4. ลบบล็อคข้อความนั้น
  5. ทำซ้ำตามความจำเป็น

นั่นควรจะเป็นเครื่องหมายลบ "-" หรือไม่?
Dracs

ขออภัยฉันใช้วงเล็บ LT และ GT รอบ ๆ ปุ่ม 'alt' แก้ไขแล้ว
Reed Shilts

10
คุณสามารถเปลี่ยนเป็น <kdMB Alt </kbd> และจะจัดรูปแบบเป็นคีย์
Dracs

ฉันใช้ Notepad ตลอดไป .... และไม่เคยรู้ว่ามีคุณสมบัตินี้อยู่! 1 พันล้าน +1

1
OP กล่าวว่า: "โหมดคอลัมน์ไม่ใช่ตัวเลือก"
Peter Mortensen

11

แสดงออกปกติเร็ว แต่คุณสามารถทำสิ่งที่ยุ่งยากจริงๆบางคนที่มีแมโครถ้ามันเป็นงานที่มีความซับซ้อนมากขึ้น

คุณสามารถบันทึกแมโคร:

  1. เคอร์เซอร์บนบรรทัด 1
  2. กดเริ่มบันทึก
  3. กดปุ่มโฮม
  4. กดค้างไว้Ctrlในขณะที่คุณกดปุ่มRight arrow(เจ็ดครั้ง)
  5. กดค้างไว้Shiftในขณะที่คุณกดปุ่มEnd
  6. กดปุ่ม Delete
  7. กดปุ่ม Down arrow
  8. ตี Stop recording

จากนั้นเล่นซ้ำ:

  1. กด "เรียกใช้แมโครหลายครั้ง"
  2. พิมพ์บรรทัดของเอกสารลบ 1 เนื่องจากบรรทัดแรกเสร็จสมบูรณ์

9

70.97.110.40สถานที่เคอร์เซอร์หลัง

วางเคอร์เซอร์

กดAltและลากเคอร์เซอร์ไปทางขวาและลงเพื่อเลือกส่วนที่ไม่ต้องการ

เลือก

กดหรือBackspaceDelete

ลบ


1
ตลอดเวลาที่ใช้ Notepad ++ และฉันไม่เคยรู้เลยว่ามันมี "Block Select Mode" เช่น TextPad
Kev

@Kev: มันทำงานในลักษณะเดียวกันใน Visual Studio
Peter Mortensen

1
OP กล่าวว่า: "โหมดคอลัมน์ไม่ใช่ตัวเลือก"
Peter Mortensen

@PeterMortensen - อีกครั้ง: VS - นรกใช้มันตั้งแต่ปี 2002 และไม่รู้ด้วยซ้ำ!
Kev

8

ต่อไปนี้เป็นวิธีการสองทางเลือกสำหรับคำตอบที่ระบุ

หากข้อมูลของคุณคือfixed widthคุณสามารถใช้นิพจน์ทั่วไปต่อไปนี้ในการค้นหา:

หาอะไร: ^(.{16}).*$

แทนที่ด้วย: \1

เป็นการดีถ้าข้อมูลที่คุณต้องการเก็บมีช่องว่างดังที่มีคนพูดถึง Column Mode Editingนอกจากนี้อีกครั้งสำหรับข้อมูลความกว้างคงที่คุณสามารถใช้ เป็นคุณสมบัติเล็กน้อยที่ช่วยให้คุณสามารถแก้ไขข้อมูลหลายบรรทัดในตำแหน่งคอลัมน์เดียวกัน ดูคอลัมน์โหมดการแก้ไข

มันพูดถึงปุ่มลูกศร แต่คุณยังสามารถใช้Page Up/Downสำหรับวิธีที่เร็วขึ้นเช่นเดียวกับEndและHomeปุ่ม เมาส์ยังใช้งานได้ แต่คุณสามารถใช้วิธีนี้สำหรับวิธีการเฉพาะกิจในการลบข้อมูลหลังจากผ่านไประยะหนึ่งโดยเฉพาะอย่างยิ่งหากเป็นเพียงไม่กี่บรรทัด นอกจากนี้ยังเป็นการดีสำหรับการคัดลอกข้อมูล แต่วิธีที่วางเป็นบิตแปลก ๆ ดังนั้นคุณต้องคุ้นเคยกับสิ่งนั้นก่อน


1
ดีกว่าเลือกและแทนที่ด้วยตัวเองจะใช้ lookbehind เช่น: (? <= ^. {13}). * และแทนที่ด้วยไม่มีอะไร ตัวเลือกนี้จะเลือกอะไรก็ได้หลังจากอักขระ 13 ตัวแรก
Chris Murray

4

แอพที่คล้ายกับ enthdegree:

  1. วางเคอร์เซอร์ที่คอลัมน์ 16
  2. Shift+ Alt+Page Down
  3. Shift+ Alt+End
  4. Delete

หากมีบรรทัดว่างที่ท้ายไฟล์ให้กดUp Arrowก่อน # 3

มันไม่สมบูรณ์แบบ แต่ก็มีประโยชน์


4
  1. กดALTในขณะที่ใช้เมาส์เป็นบ่วงบาศ
  2. เลือกทั้งหมดที่คุณต้องการลบ
  3. กด DELETE

สมมติว่าคอลัมน์แรกมีแถวขึ้นมาอย่างสวยงามเช่นเดียวกับที่อยู่ IP นี่คือวิธีที่เร็วที่สุด
bgStack15

OP กล่าวว่า: "โหมดคอลัมน์ไม่ใช่ตัวเลือก"
Peter Mortensen

3

นี่คือวิธีการแสดงภาพ:

  • วางเคอร์เซอร์ที่ท้ายที่อยู่ IP
  • Alt+ Shift+Pg Down
  • Alt+ Shift+Right
  • Delete

นี่ไม่ใช่ 'คอลัมน์ตาม' ใช้งานได้เพราะที่อยู่ IP ของคุณมีรายการทั้งหมดเท่านั้น


1
คุณหมายถึงอะไรโดย "นี่ไม่ได้เป็น 'คอลัมน์ตาม' '? Alt + Shift + Arrow เปลี่ยนเป็น "โหมดคอลัมน์"
MrWhite

ไม่เคารพการแยกแท็บเป็นคอลัมน์ มันแยกพวกมันออกเป็นช่องว่างเพื่อให้แต่ละบรรทัดในส่วนที่เลือกมีจำนวนอักขระเดียวกันเกินขอบของจุดเริ่มต้นของตัวเลือก
enthdegree

1

ในโหมดนิพจน์ปกติค้นหา:

\ t. *

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

ไม่มีอะไร


คุณสามารถเพิ่มหนึ่งหรือสองประโยคเพื่ออธิบายสิ่งนี้ได้หรือไม่ ขอบคุณ
fixer1234

1
การแลกเปลี่ยนแบบสแต็กจะแปลงแท็บเป็นช่องว่างในขณะที่แสดง แต่แม้ในโหมดแก้ไขตัวอย่างจะไม่แสดงแท็บใด ๆ
Arjan

0

ลบทุกอย่างหลังจากคอลัมน์แรกใน Notepad ++:

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