サクラエディタで特定の文字を含む行を削除する方法です。
手順
例として「みかん」が含まれる行を削除してみます。
みかんぶどうりんご
なしりんごもも
かきみかんいちご
↑この場合なら1行目と3行目が削除されます。
①メニュー「検索(S)」⇒「置換(R)」を選択する
ショートカットキー「[Ctrl]+[r]」でもOKです。
②置換画面で「置換前(N)」に「^.*みかん.*¥r¥n」を指定、「置換後(P)」は何も指定せずに「正規表現(E)」にチェックを入れて「全て置換(A)」ボタンをクリックする
他の文字を対象としたい場合は、以下<対象文字>の部分を置き換えればOKです。
^.*<対象文字>.*¥r¥n
上の例はWindowsで作成したテキストファイルを対象とした例です。
MacやUnix系で作成したテキストファイルの場合は改行コードが異なりますので、
改行コードの部分(¥r¥nの箇所)を以下のように置き換えてください。
Windowsで作成したテキストファイル | \r\n |
---|---|
Mac/Unix/Linxで作成したテキストファイル | \n |
MacOS X以前のMacで作成したテキストファイル | \r |
③すると、「みかん」が含まれる行が削除されます。
(追記)他の方法
より良いやり方をコメント頂いたので追記します。
上記手順2で、指定する文字列を「^.*みかん.*」にした上で、置換対象に「行削除」を選択してもOKです。
こちらのやり方の方が改行コードを意識する必要が無いのでおすすめです。
コメントを頂いた方ありがとうございましたm(_ _)m
備考
- 置換画面で「正規表現(E)」のチェックを忘れないようにご注意ください。
- 上記例の場合、対象文字を含む行が行ごと削除されますが、行は残したい場合は置換前に指定する文字を以下のように¥r¥nを削除すればOKです。
^.*<対象文字>.*
コメント
コマンド入力しなくても、置換対象で行削除を選んでおけば同じことができます。
そのままのやり方100%そっくりやったけど
0件置換で失敗したよ
今のバージョン対応してませんのでは?
それとも「.*入力.*¥r¥n」どっか間違ってますか
別のやり方で「.*文字.*」、マーク付けて、行削除選んで、すべて置換したら成功した…
ご指摘ありがとうございます。
正規表現の記載が間違っていました。
誤).*<対象文字>.*¥r¥n
正)^.*<対象文字>.*¥r¥n
記事の方は修正させて頂きました。
例文の「みかん」で試しているのですが検索対象にひっかかりません・・・。
もしかして本記事内の「^.*<対象文字>.*¥r¥n」をコピペだと何らかの記号が紛れていて動作しないなどあるのでしょうか?
先程投稿したコメントについてですが、
私の環境では標準の改行コードが「LF」だったから「\r\n」では検索に引っかからなかったようです。
恐らく前述の方も改行コードが違っていたせいで検索に引っかからなかったのかなと。
今回の記事のようにサクラエディタ限定で特定の行を削除する方法の説明とするならば、
『後ろに改行コードは付けずに「置換対象」を「行削除」にする』
というやり方のほうが、改行コードの違うことの説明や別のやり方を記載する必要がないので楽かもしれません。
遅くなりましたがコメントありがとうございます
Windows以外のテキストファイルを考慮していなかったため改行コードは盲点でした
記事を修正させて頂きましたm(_ _)m