ฉันจะเพิ่มตัวเลขที่ท้ายบรรทัดทุกบรรทัดใน Notepad ++ ได้อย่างไร


37

ฉันมี 23,000 บรรทัดและฉันต้องเพิ่มหมายเลข1ที่ท้ายบรรทัดทุกบรรทัด

ฉันจะทำสิ่งนี้ได้อย่างไร

ตอนนี้

[line1]TEXT
[line2]TEXT

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

[line1]TEXT1
[line2]TEXT1

2
น่าสนใจมากขึ้น; คุณจะกำหนดหมายเลขตามลำดับให้กับบรรทัดตามลำดับอย่างไร :-)
Carl Witthoft

1
@CarlWitthoft กำหนดจำนวนบรรทัดด้วยแพ็คเกจ TextFX (TextFx> เครื่องมือ TextFx> แทรกหมายเลขบรรทัด) จากนั้นย้ายหมายเลขบรรทัดไปยัง EOL ด้วย regexp
DavidPostill

2
หากมีบรรทัดว่างระหว่าง 2 บรรทัดข้อความบรรทัดนั้นควรได้รับ 1 หรือไม่
Nzall

4
:%s/$/1/. โอ้รอที่เป็นกลุ่ม ;-) (ซึ่งมีให้สำหรับ Windows เช่นกัน)
DevSolar

1
@DevSolar :g/$/norm A1อีกทางเลือกหนึ่ง หรือมีความซับซ้อนมากขึ้น gg$<C-v>G$A1<esc>แต่นักเล่น ggqqqqqA1<esc>j@qq@qหรือแม้กระทั่งที่น่ารังเกียจที่ยอมรับ มีมากกว่าหนึ่งวิธีที่ต้องทำ: P
Doorknob

คำตอบ:


28

ฉันจะเพิ่มตัวเลขที่ท้ายบรรทัดทุกบรรทัดใน Notepad ++ ได้อย่างไร

  • เมนู "ค้นหา"> "แทนที่" (หรือCtrl+ H)

  • ตั้งค่า "ค้นหาสิ่งที่" เป็น \r\n

  • ตั้งค่า "แทนที่ด้วย" เป็น 1\r\n

  • เปิดใช้งาน "นิพจน์ปกติ" หรือ "ขยาย"

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

  • คลิก "แทนที่ทั้งหมด"

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

หมายเหตุ:

  • ดังกล่าวข้างต้นจะถือว่าคุณกำลังแก้ไขแฟ้มข้อความที่มี EOLs ของ \r\nWindows

  • หากคุณกำลังใช้ไฟล์ที่มี EOL ต่างกันคุณสามารถแปลงเป็น EOL ของ Windows ได้โดยใช้เมนู "แก้ไข"> "การแปลง EOL"

  • หากคุณไม่ได้ทำงานกับ Windows EOL และไม่ต้องการแปลงให้ใช้สิ่งต่อไปนี้แทน:

    • ใช้\nแทน\r\nUnix / OS X EOL ("ค้นหาสิ่งที่" คือ\n"แทนที่ด้วย" คือ1\n)

    • ใช้\rแทน\r\nEOL สำหรับ Mac OS (จนถึงเวอร์ชัน 9) ("ค้นหาสิ่งที่" คือ\r"แทนที่ด้วย" คือ1\r)


อ่านเพิ่มเติม


ใช้งานได้ก็ต่อเมื่อตัวคั่นบรรทัดคือ windows \ r \ n
Zaheylu

4
ใช่ แต่ Notepad ++ เป็นโปรแกรม WIndows ... ;)
DavidPostill

5
โอ้คุณพูดถูก ... :) ถึงกระนั้นไฟล์ข้อความอาจมีการเข้ารหัสบรรทัดอื่น ๆ ;)
Zaheylu

5
หากคุณไม่ได้ทำงานกับ windows EOL ไม่มีเหตุผลที่จะ "แปลง" พวกเขา ... เพียงแค่ใช้\nหรือ\rแทน (Unix และ Mac EOLs ตามลำดับ) \n=> 1\nหรือ=>\r 1\rฉันทำสิ่งนี้บ่อยขึ้นด้วย Extended แทนที่จะเป็น Regex เป็นการส่วนตัว
WernerCD

2
@WernerCD ควรทราบว่า\rใช้กับ Mac OS ที่หมดอายุเท่านั้น ไม่ OS X \nซึ่งการใช้งาน
Bob

19

ตัวเลือกอื่นคือคุณสมบัติการบันทึกและเล่น

  1. ด้วยเคอร์เซอร์ของคุณในบรรทัดแรกคลิกที่ 'เริ่มการบันทึก'
  2. พิมพ์End, 1,
  3. คลิกที่ 'หยุดการบันทึก'
  4. คลิกที่ 'เรียกใช้แมโครหลาย ๆ ครั้ง ... '
  5. เลือก 'เรียกใช้จนกว่าจะสิ้นสุดไฟล์' แล้วคลิกเรียกใช้
  6. งานเสร็จแล้ว

ภาพหน้าจอ

บันทึกและเล่น

พิมพ์End, 1,

คลิกที่หยุด

เรียกใช้แมโคร

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

เสร็จสิ้น


9
แมโคร Notepad ++ ไม่เคยมีความรักเพียงพอ
armani

15

คำตอบที่อัปเดต:

กดปุ่มCtrl+ Hเพื่อเปิดกล่องโต้ตอบแทนที่

ภายใต้โหมดค้นหาให้เลือกติ๊กนิพจน์ปกติ

Find what: $

Replace with: 1

และการตี Replace all


คำตอบเดิม

กดปุ่มCtrl+ Hเพื่อเปิดกล่องโต้ตอบแทนที่

Regular Expressionภายใต้โหมดการค้นหาติ๊ก

หาอะไร: ^.*$

แทนที่ด้วย ($0)1

และการตี Replace all

คำอธิบาย

คุณกำลังค้นหาการแสดงออกปกติ^.*$ซึ่งเป็นปัจจุบันทุกบรรทัด ^ทำเครื่องหมายจุดเริ่มต้นของบรรทัด.*รวมอักขระใด ๆ จำนวนครั้งและ$ทำเครื่องหมายจุดสิ้นสุดของบรรทัด ดังนั้นการแสดงออกปกตินี้ค้นหาเนื้อหาทั้งหมดในทุกบรรทัด

เราแทนที่การแสดงออกนี้กับ($0)1, $0เป็นแสดงออกพบและผนวก1กับมัน


2
ค้นหา = $และแทนที่ = 1ก็เพียงพอแล้ว
Salman

8

หรือทำเหมือนที่เด็กผู้ชายตัวใหญ่ทำ :)

เลือกคอลัมน์สุดท้ายโดยใช้ Shift + Alt => ปุ่มขวา (หนึ่งครั้ง) => ปุ่มลง (กดจนถึงบรรทัดสุดท้าย)

พิมพ์สิ่งที่คุณต้องการ มันจะปรากฏในทุกบรรทัดในครั้งเดียว


ฉันกำลังจะพูดแบบนี้เช่นกัน .. ทำไมการแสดงออกที่ซับซ้อนทั้งหมด? นี้ตอบคำถามได้อย่างสมบูรณ์แบบ .. และทำไมลงคะแนนเสียง? เพราะบางคนไม่เข้าใจว่าเป็นคำตอบที่ถูกต้องหรือไม่ Oo
Ditto

2
สิ่งนี้อาจไม่สามารถใช้ได้จริงสำหรับ 23,000 บรรทัด (ช้าเกินไปหรืออย่างอื่น (ปัญหาหน่วยความจำเนื่องจากShlemiel อัลกอริทึมของจิตรกร ?) คุณลองใช้กับ 23,000 บรรทัดแล้วหรือยัง?
Peter Mortensen

2
@PeterMortensen ช้ามาก แต่การใช้หน่วยความจำก็โอเค (5 MB => 25 MB) ปัญหาที่ใหญ่กว่าคือดูเหมือนว่าจะไม่สามารถรับมือได้ดีกับความยาวบรรทัดที่ต่างกัน
Bob

@Ditto ฉันไม่ได้อ้างสิทธิ์ว่าเป็นผู้ใช้ทั่วไป แต่ดูเหมือนว่าจะเข้าใจได้ง่ายกว่านิพจน์ทั่วไป จากนั้นอีกครั้งxkcd.com/1171
David Z

1
นี่ไม่ใช่คำตอบที่ดีมากก่อนอื่นคุณจะต้องค้นหาบรรทัดที่ยาวที่สุดจากนั้นคุณจะต้องกดลงไปจนถึงบรรทัดสุดท้ายในขณะที่ทดสอบวิธีการนี้ฉันเบื่อหลังจากผ่านไปสองสามบรรทัดฉันไม่สามารถนั่งที่นั่นได้ 20k + บรรทัด
Aequitas

1

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


3
บางครั้งผมใช้คุณลักษณะนี้ แต่ลากสำหรับ 23,000 เส้น ... ไม่สนุกมากเลย :)
Denham คู้

1

โหมดขยาย

ฉันต้องการเพิ่มวิธีที่แตกต่างออกไปเล็กน้อยซึ่งไม่ได้กล่าวถึงในคำตอบอื่น ๆ : โหมดขยาย

สำหรับบางสิ่งบางอย่างเช่นนี้ - ที่ทั้งหมดที่คุณมีความกังวลกับมี\r, \n, \tหรือคนอื่น ๆ รวมอยู่ในรายการนี้มีขนาดเล็ก ( แต่ที่มีลักษณะหน้าจะเป็น "วัน" จึงไม่แน่ใจ 100% ในความจริงของมัน) มีเหตุผลที่จะไปออกเต็มปกติไม่มี การแสดงออก

ฉันใช้โหมดขยายของ Notepad ++ "บ่อยครั้ง" เพื่อนวดเค้าโครงไฟล์ - โดยส่วนใหญ่อยู่ตรงกลางลบบรรทัดว่างหลายช่องว่างพิเศษและแปลกประหลาดสารพันอื่น ๆ

ขยาย

  1. เมนู "ค้นหา"> "แทนที่" (หรือCtrl+ H)
  2. กำหนดว่าคุณต้องการให้ลงท้ายบรรทัดใด
  3. ใน "Find What" ใส่:
    • \r\n สำหรับ Windows
    • \r สำหรับ MacOS เวอร์ชั่นเก่า (9 ขึ้นไป)
    • \n สำหรับ Unix หรือใหม่กว่าของ MacOS (OS X หรือใหม่กว่า)
  4. ตั้งค่า "แทนที่ด้วย" เป็น
    • 1\r\n สำหรับ Windows
    • 1\r สำหรับ MacOS เวอร์ชั่นเก่า (9 ขึ้นไป)
    • 1\n สำหรับ Unix หรือใหม่กว่าของ MacOS (OS X หรือใหม่กว่า)
  5. เปิดใช้งาน "ขยาย"
  6. คลิก "แทนที่ทั้งหมด"

"นิพจน์ทั่วไป" เป็นชุดของ "ส่วนขยาย" ดังนั้นในกรณีนี้ไม่สำคัญว่าจะใช้อันไหน
DavidPostill

ไม่ควร\nสำหรับ Unix และ\rMacOS เวอร์ชั่นเก่ากว่านี้หรือ กระสุนลูกแรกจากวิกิพีเดีย: en.wikipedia.org/wiki/Newline# ผู้แทน
nhahtdh
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.