Bagaimana cara memesan ulang kolom yang dibatasi pipa di Notepad ++?


8

Saya mencoba memposisikan ulang setiap baris dalam file .txt dengan cara berikut di bawah ini. Namun saya tidak tahu bagaimana cara melakukannya. Apakah ini mungkin dengan Notepad ++?

Dari
apple|
apple123@aol.com| oranye seledri | celery@aol.com|
sandwich sampah| sandwich@aol.com |

Untuk
apple|
orange| apple123@aol.com seledri| cabbage | paketery@aol.com
sandwich| turkey | sandwich@aol.com


Saya baru saja menemukan ini, yang saya bahkan tidak tahu sebelumnya tetapi terlihat sangat berguna: Edit kolom di Notepad ++ dengan plugin TextFX
MC10

Saya tidak akan menyebut ini "garis reposisi".
Lightness Races di Orbit

Jawaban:


15

Pemesanan Ulang Kolom dalam File Teks

Ya ini mungkin di dalam vanilla Notepad++, meskipun seperti disebutkan ada juga plugin yang akan melakukannya. Pendekatan yang lebih baik (lebih kuat) mungkin menggunakan beberapa alat pemrosesan teks baris perintah, tetapi jika Anda membutuhkan solusi cepat dan kotor Anda dapat menemukan bahwa di bawah ini:

Dengan asumsi input pasti Anda ( col1|col2|col3, delimeter pipa, tidak ada pipa col2):

Temukan :(.*?)\|(.*?)\|(.*)

Ganti :\1|\3|\2

bekerja untuk saya di sini Notepad++, dibangun Jan 2015. Agak brutal, tetapi berhasil.

Penjelasan:

.* - cocok dengan karakter apa pun (kecuali baris baru), antara nol dan waktu tanpa batas

.*?- cocok dengan karakter apa pun (kecuali baris baru) seperti di atas, dengan cara yang tidak serakah (yaitu sesedikit mungkin cocok )

(.*)- kurung plain menunjukkan menangkap kelompok di atas (untuk digunakan dalam Ganti sebagai misalnya \1, \2, \3dll)

\|- \lolos pipa ( |) untuk mencocokkannya secara harfiah

\1|\3|\2- cetak kelompok pencocokan 1, pipa, kelompok pencocokan ketiga , pipa, kelompok pencocokan kedua


Dengan senang hati, saya senang itu membantu Anda dan berharap itu akan membantu orang lain :-) Tidak perlu, tetapi Anda juga dapat mengklik tanda centang untuk menerima jawaban jika itu memecahkan masalah Anda - Anda bebas untuk tidak melakukannya, atau untuk menunggu jawaban yang lebih baik juga!
bertieb

Tidakkah Anda perlu membuat orang yang .*tidak serakah, yaitu .*?menghindari banyak kemunduran?
Ex Umbris

@ExUmbris: biasanya pengoptimalan dimulai ketika kecepatan tampaknya tidak memadai
nperson325681

OTOH sengaja menulis kueri suboptimal demi tidak menulis ?karakter tampak konyol.
Lightness Races di Orbit

1
(.*?)|(.*?)|(.*)bekerja untukku.
Shaz
Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.