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|
[email protected]| oranye seledri | [email protected]|
sandwich sampah| [email protected] |

Untuk
apple|
orange| [email protected] seledri| cabbage | [email protected]
sandwich| turkey | [email protected]

Lucyfer
sumber
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

bertieb
sumber
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