Jawaban:
Ada cara mudah untuk mencapai ini. Anda perlu melakukan 3 langkah.
Buka menu Pencarian> Temukan ...> Pilih Tab "Tandai". Aktifkan ekspresi reguler. Pencarian untuk ^<Path>
( ^
adalah untuk memulai baris). Jangan lupa untuk memeriksa "Bookmark baris" dan Tekan "Tandai Semua"
==> Semua Baris yang Anda ingin dapatkan Bookmark
Pergi ke Menu "Cari - Bookmark - Bookmark Inverse"
==> Semua Baris yang ingin Anda hapus di-bookmark.
Pergi ke Menu "Cari - Bookmark - Hapus baris Bookmarked"
==> Semua baris yang ditandai dihapus.
Ini sebenarnya bisa dilakukan dalam dua langkah pada 6.3. Saya pikir itu bisa dilakukan lebih awal dari itu karena saya punya 5,9 ketika saya pertama kali mencobanya.
Menggunakan pos stema sebagai dasar jawaban ini. Ada satu langkah lebih sedikit sekarang. Tandai garis dan hapus garis yang tidak ditandai. Selesai. Ikuti petunjuk terperinci.
Cari menu "Temukan". Dalam dialog Temukan, klik tab "Tandai". Aktifkan ekspresi reguler. Pencarian untuk ^<Path>
( ^
adalah untuk memulai baris). Jangan lupa untuk memeriksa "Bookmark baris" dan Tekan "Tandai Semua"
==> Semua Baris yang ingin Anda pertahankan sekarang memiliki Bookmark
Cari Menu -> Bookmark -> Hapus Garis Tidak Bertanda.
==> Semua baris NON Bookmarked dihapus.
^
istilah pencarian saya, atau menggunakan ekspresi reguler. Semoga ini bisa membantu seseorang.
ganti regex
(?!^.*test.*$)^.+
ganti tes dengan teks yang Anda minta
menggantikan
[\r\n]{2,}
dengan \r\n
Gunakan ^(?!<Path>).*\r\n
untuk mengganti yang cocok dengan string kosong. Versi umum akan menjadi ^(?!.*?test).*\r\n
. Ini tidak akan menghapus baris kosong di akhir file. Semua baris lain dihapus, termasuk beberapa baris kosong berturut-turut.
(?!)
adalah pandangan negatif. ^.*test.*$
memilih seluruh baris yang berisi teks yang diminta.
[\r\n]{2,}
cocok dengan apa pun \r\n
yang terjadi lebih dari sekali ini adalah baris Windows Baru. jika Anda memiliki Linux atau sistem operasi lain, Anda mungkin perlu mengacaukannya. yang kedua adalah menggantinya dengan satu baris kembali.
\r\n
EOL disebutkan dalam pos yang menggunakan Windows dan karena itu mungkin atau mungkin tidak apa yang Anda cari. Seringkali di lingkungan Linux hanya saja \n
, atau di lingkungan Mac saja \r
, jadi jika Anda menarik file dari salah satu, itu tidak akan menjadi EOL gaya Windows. Namun, jika Anda mengunduh melalui pemicu mode FileZilla dan ASCII, itu dapat mengubahnya kembali ke Windows EOL (seperti \n
ke \r\n
). Jadi jika regex tidak berfungsi, periksa gaya EOL dengan masuk ke "Lihat> Tampilkan Simbol> Tampilkan Akhir Garis". CR = \r
. LF = \n
.
Sepertinya saya bahwa cara termudah adalah dengan hanya menggunakan fitur "Temukan Semua dalam Dokumen Saat Ini" dan kemudian salin hasilnya ke file baru atau pilih semua dan ganti di yang sekarang.
Ini akan menemukan semua baris yang berisi teks Anda dan daftar di bagian bawah. Cukup klik kanan pada hasil pencarian dan salin / tempel.
\tLine [\d]*:
. Masih jawaban yang bagus.
Buka menu Cari -> Temukan ... -> Aktifkan ekspresi reguler. Cari "^ Path " (^ adalah untuk memulai baris).
Klik tombol "Temukan semua dalam Dokumen Saat Ini".
Jendela "Temukan hasil" akan muncul dengan semua garis pola. Pilih salin / tempel ke tab baru di Notepad ++.
Di tab baru ini, buka: menu Cari -> Ganti ... -> Aktifkan ekspresi reguler.
Di bidang "Temukan apa:", gunakan pola: "Baris \ d +:". Biarkan bidang "Ganti dengan:" kosong.
Klik pada tombol "Ganti Semua".
Asalkan Anda benar-benar ingin mencocokkan <Path>
dan bukan jalur sistem file, Anda dapat mencoba ini dari baris perintah menggunakan Perl:
perl -pe " if ($_ !~ /<Path>/) { s/$_// } " < in.txt > out.txt
Ini bekerja dengan Strawberry Perl di Windows, jadi sesuaikan sesuai jika hasilnya tidak seperti yang Anda harapkan.
Itu canggung, tapi salin semuanya ke Excel , lalu gunakan =IF(LEFT(A1,6)="<Path>",A1,"")
dan salin rumus itu sampai habis. Kemudian salin kembali ke Notepad ++. Ini tidak ideal, tetapi sangat mudah (jika Anda memiliki Excel). Peringatan: Ini tidak akan bekerja dengan baik dengan garis indentasi (Excel akan menggeser kolom, dll.).
Tidak ada cara mudah untuk melakukan apa yang Anda inginkan dengan Notepad ++. Anda harus mengunduh program ke komputer atau menulis sesuatu di VB (saya berasumsi Anda menggunakan Windows).
Anda dapat melakukan apa yang Anda inginkan salah satu dari dua cara dengan sed. Utilitas sed adalah favorit di * nix dan dapat ditemukan untuk Windows dari orang-orang hebat di GnuWin ( http://gnuwin32.sourceforge.net/packages/sed.htm ). Anda akan mengunduh program ini, dan kemudian menjalankan perintah Anda dari command prompt.
Hapus semua baris yang tidak mengandung:
sed -i '/^<PATH>/!d' file
Cetak semua baris yang berisi file baru:
sed -n '/^<PATH>/p' file > newfile
Saya sarankan Anda menggunakan cetak baris yang Anda inginkan ke file baru. Alasan untuk ini adalah bahwa Anda mungkin tidak akan mendapatkan pernyataan regex untuk pertama kalinya. Utilitas sed menggunakan Sintaks Dasar Regular Expression (lihat referensi di http://www.regular-expressions.info/reference.html ). Jika sesuatu seperti * nix path (/ var / www) maka Anda harus melarikan diri dari / karakter agar regex Anda berfungsi.
Contoh: sed -n '/^\/var\/www/p' file > newfile
Ini akan mencetak semua baris yang dimulai dengan '/ var / www'. Jika saya mengajukan untuk keluar dari / karakter, maka perintah itu akan membuat kesalahan. Anda dapat keluar dari karakter khusus (seperti /) dengan karakter backslash \.
Gunakan Cari-> Ganti dan masukkan ekspresi reguler seperti ^[^ ].*
dan ganti semua dengan string kosong menggunakan Regular expression
. Langkah selanjutnya adalah menemukan baris kosong mencari \n\n
penggantian dengan \n
menggunakan Extended
beberapa kali sampai 0 occurrences were found.
(gunakan \r\n\r\n
dan \r\n
tergantung pada format file). Jika Anda memiliki sangat banyak baris kosong dalam satu baris, lebih cepat untuk menggunakan \n\n\n\n\n\n\n
atau bahkan lebih banyak \n
: dalam string pencarian.