วิธีการสั่งซื้อคอลัมน์ที่คั่นด้วยไปป์ใน Notepad ++ ใหม่ได้อย่างไร


8

ฉันพยายามเปลี่ยนตำแหน่งทุกบรรทัดในไฟล์. txt ด้วยวิธีต่อไปนี้ด้านล่าง อย่างไรก็ตามฉันไม่รู้ว่าจะทำยังไง เป็นไปได้ด้วย Notepad ++ หรือไม่

จาก
apple|apple123@aol.com|orange
celery|celery@aol.com|cabbage
sandwichs.sandwich@aol.com|turkey

หากต้องการ
apple.dorange=apple123@aol.com
celery|cabbage.scelery@aol.com
sandwich|turkey|sandwich@aol.com


ฉันเพิ่งพบสิ่งนี้ซึ่งฉันไม่เคยรู้มาก่อน แต่ดูมีประโยชน์สุด ๆ : แก้ไขคอลัมน์ใน Notepad ++ ด้วยปลั๊กอิน TextFX
MC10

ฉันจะไม่เรียกสิ่งนี้ว่า
การแข่งขัน Lightness ใน Orbit

คำตอบ:


15

การสั่งซื้อคอลัมน์อีกครั้งในไฟล์ข้อความ

ใช่สิ่งนี้เป็นไปได้ภายในวานิลลาNotepad++แม้ว่าจะมีปลั๊กอินที่จะทำเช่นกัน วิธีที่ดีกว่า (มีประสิทธิภาพมากขึ้น) อาจใช้เครื่องมือประมวลผลข้อความบรรทัดคำสั่งบางตัว แต่หากคุณต้องการวิธีแก้ปัญหาที่รวดเร็วและสกปรกคุณสามารถดูได้จากด้านล่าง:

สมมติว่าการป้อนข้อมูลที่แน่นอนของคุณ ( col1|col2|col3, ท่อ delimeter, ไม่มีท่อในcol2):

ค้นหา :(.*?)\|(.*?)\|(.*)

แทนที่ :\1|\3|\2

ทำงานให้ฉันที่นี่ในNotepad++สร้างมกราคม 2015 ค่อนข้างโหดเหี้ยม แต่ใช้งานได้

คำอธิบาย:

.* - จับคู่อักขระใด ๆ (ยกเว้นขึ้นบรรทัดใหม่) ระหว่างเวลาศูนย์และไม่ จำกัด

.*?- จับคู่อักขระใด ๆ (ยกเว้นการขึ้นบรรทัดใหม่) ตามข้างต้นในลักษณะที่ไม่โลภ (เช่นจับคู่ให้น้อยที่สุด )

(.*)- วงเล็บธรรมดาหมายถึงการจับภาพกลุ่มข้างต้น (เพื่อใช้ในการเปลี่ยนเป็นเช่น\1, \2, \3ฯลฯ )

\|- \หลบหนีไปป์ ( |) เพื่อจับคู่มันอย่างแท้จริง

\1|\3|\2- พิมพ์กลุ่มการจับคู่ที่ 1, ไพพ์, กลุ่มการจับคู่ที่สาม , ไพพ์, กลุ่มการจับคู่ที่สอง


ความสุขของฉันฉันดีใจที่มันช่วยคุณและหวังว่ามันจะช่วยให้ผู้อื่น :-) มันไม่จำเป็น แต่คุณสามารถคลิกที่เครื่องหมายถูกเพื่อรับคำตอบถ้ามันแก้ปัญหาของคุณ - คุณมีอิสระที่จะไม่หรือ เพื่อรอคำตอบที่ดีกว่านี้ด้วย!
bertieb

คุณไม่จำเป็นต้องทำสิ่งที่.*ไม่โลภใช่ไหม.*?เพื่อหลีกเลี่ยงการย้อนรอยมาก?
อดีต Umbris

@ExUmbris: โดยปกติแล้วการปรับให้เหมาะสมจะเริ่มต้นเมื่อความเร็วไม่เพียงพอ
nperson325681

OTOH จงใจเขียนแบบสอบถามย่อยเพื่อประโยชน์ในการไม่เขียน?ตัวละครที่ดูเหมือนโง่
การแข่งขัน Lightness ใน Orbit

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