回答:
これを達成する簡単な方法があります。3つのステップを実行する必要があります。
[検索]メニュー> [検索...]に移動し、[マーク]タブを選択します。正規表現を有効にします。を検索します^<Path>
(^
行開始用です)。「ブックマーク行」をチェックして「すべてマーク」を押すことを忘れないでください
==>保持したいすべての行にブックマークがあります
「検索-ブックマーク-逆ブックマーク」メニューに移動します
==>削除するすべての行がブックマークされます。
「検索-ブックマーク-ブックマークされた行を削除」メニューに移動します
==>ブックマークされた行はすべて削除されます。
これは、6.3の時点で実際に2つのステップで実行できます。私はそれを最初に試したときに5.9を持っていたので、それよりも早く行うことができると思います。
この答えの基礎として、ステマの投稿を使用します。1つ少ないステップがあります。行をマークし、マークされていない行を削除します。できた 詳細な手順は次のとおりです。
検索メニュー「検索」。[検索]ダイアログで、[マーク]タブをクリックします。正規表現を有効にします。を検索します^<Path>
(^
行開始用です)。「ブックマーク行」をチェックして「すべてマーク」を押すことを忘れないでください
==>保持したいすべての行にブックマークが追加されました
検索メニュー->ブックマーク->マークされていない行を削除します。
==>すべてのNONブックマークし行が削除されます。
^
検索用語にを追加したり、正規表現を使用したりする必要はありませんでした。これが誰かを助けることを願っています。
正規表現の置き換え
(?!^.*test.*$)^.+
テストをリクエストしたテキストに置き換えます
取り替える
[\r\n]{2,}
と \r\n
^(?!<Path>).*\r\n
一致を空の文字列で置き換えるために使用します。一般化バージョンはになります^(?!.*?test).*\r\n
。これは、ファイルの最後の空行を削除しません。複数の連続した空行を含む、他のすべての行が削除されます。
(?!)
否定的な見方です。^.*test.*$
要求されたテキストを含む行全体を選択します。
[\r\n]{2,}
\r\n
これがWindowsの新しい行になると、複数回発生するものに一致します Linuxまたは別のオペレーティングシステムを使用している場合、これを台無しにする必要があるかもしれません。2つ目は、1つの戻り行に置き換えることです。
\r\n
記事で言及したEOLは、Windowsが使用するものであるためか、あなたが探しているものであってもなくてもよいです。多くの場合、Linux環境では単に\n
、またはMac環境ではちょうど\r
です。どちらからファイルをプルしても、WindowsスタイルのEOLにはなりません。あなたはFileZillaを経由してダウンロードし、ASCIIモードがトリガーしかし、もし、それがそれらを変更することがあり再度Windows EOLへの(のよう\n
に\r\n
)。したがって、正規表現が機能しない場合は、[表示]> [シンボルの表示]> [行末の表示]に移動してEOLスタイルを確認します。CR = \r
。LF = \n
。
最も簡単な方法は、「現在のドキュメントですべてを検索」機能を使用して、結果を新しいファイルにコピーするか、すべてを選択して現在のファイルで置換することです。
これにより、テキストを含むすべての行が検索され、下部にリストされます。検索結果を右クリックして、コピー/貼り付けします。
\tLine [\d]*:
ます。まだ素晴らしい答えです。
<Path>
ファイルシステムパスではなく、実際に一致させたい場合は、Perlを使用してコマンドラインからこれを試すことができます。
perl -pe " if ($_ !~ /<Path>/) { s/$_// } " < in.txt > out.txt
Windows上のStrawberry Perlで動作するため、結果が予想と異なる場合は適宜調整してください。
Notepad ++でやりたいことをする簡単な方法はありません。プログラムをコンピューターにダウンロードするか、VBでスクリプトを作成する必要があります(Windowsを使用していると仮定します)。
sedを使用すると、2つの方法のいずれかを実行できます。sedユーティリティは* nixのお気に入りであり、Windowsの場合はGnuWin(http://gnuwin32.sourceforge.net/packages/sed.htm)のすばらしい人々から入手できます。このプログラムをダウンロードし、コマンドプロンプトからコマンドを実行します。
を含まないすべての行を削除します。
sed -i '/^<PATH>/!d' file
含むすべての行を新しいファイルに印刷します。
sed -n '/^<PATH>/p' file > newfile
新しいファイルに必要な行を印刷することをお勧めします。その理由は、おそらく最初に正規表現ステートメントを取得できないからです。sedユーティリティは、正規表現の基本構文を使用します(http://www.regular-expressions.info/reference.htmlのリファレンスを参照)。が* nixパス(/ var / www)のようなものである場合、正規表現が機能するには/文字をエスケープする必要があります。
例:sed -n '/^\/var\/www/p' file > newfile
これは、「/ var / www」で始まるすべての行を出力します。/文字をエスケープするように申請した場合、コマンドはエラーをスローします。バックスラッシュ文字\を使用して、特殊文字(/など)をエスケープできます。