質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.49%
サクラエディタ

サクラエディタは、日本製のWindows向けテキストエディタでオープンソースで提供されています。カラー強調表示やキー操作の自動実行など多彩な機能が特徴。多くの文字コードに対応しており、アウトライン解析も可能です。

grep

grepはコマンドライン上でテキスト検索を可能にするユーティリティーです。元はUnixのために用意されたものです。

Q&A

解決済

2回答

4082閲覧

サクラエディタのgrepについて

koromo_t

総合スコア60

サクラエディタ

サクラエディタは、日本製のWindows向けテキストエディタでオープンソースで提供されています。カラー強調表示やキー操作の自動実行など多彩な機能が特徴。多くの文字コードに対応しており、アウトライン解析も可能です。

grep

grepはコマンドライン上でテキスト検索を可能にするユーティリティーです。元はUnixのために用意されたものです。

0グッド

0クリップ

投稿2020/01/30 12:37

相当試行錯誤したのですが、正規表現でどのように書けばよいのかわかりません。

メールのヘッダの話です。

From: abc@hoge.ne.jp To: def@hoge.ne.jp To: ghi@hoge.ne.jp

このような状態のとき、1行目と2行目の間(FromとToひとつ目の間)に、
もうひとつ「To: jkl@hoge.ne.jp」を挿入したいです。

↓期待する結果

From: abc@hoge.ne.jp To: jkl@hoge.ne.jp To: def@hoge.ne.jp To: ghi@hoge.ne.jp

挿入したい部分は「To:」のトップなので、
サクラエディタのgrep置換にて「ファイル毎最初のみ検索」の設定にして、
置換前を「To: 」、置換後を「To: jkl@hoge.ne.jp\r\nTo: 」とすれば、
期待する結果を得られると考えたのですが、
実行したところ、すべての「To: 」が置換後の状態に置き換わってしまい、
期待する結果を得られませんでした。

アドバイスをいただけたら幸いです。
よろしくお願いします。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

wayadahata

2020/01/30 13:07

改行コードは\nではないでしょうか。
Zuishin

2020/01/31 01:02

置換じゃなく普通に挿入する方が速そうです。
koromo_t

2020/02/03 13:11

回答ありがとうございました。 To:の最後尾になら挿入できたので、それで良しとすることにしました。
guest

回答2

0

自己解決

みなさん、回答ありがとうございました。
To:の最後尾なら挿入できたので、それで良しとすることにしました。

投稿2020/02/03 13:12

koromo_t

総合スコア60

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

0

機能を誤解されているようです。
なんか誤解じゃない気がしてきた。grep置換のバグの様な気がしますね。

grepの時は複数行が該当しても「1 個が検索されました。」となるので
grep 置き換えの時も「1 個を置換しました。」となるのが本来の動作の様な気がします。

こちらから issueを挙げられてはどうでしょう。
https://github.com/sakura-editor/sakura/issues


(Help)Grep置換

「ファイル毎最初のみ」:ファイル毎に1回だけ結果を出力します。

置換を最初にマッチしたものだけ実行するのではなく
結果に出力する内容を1行だけ表示するよということです。

  • 「ファイル毎最初のみ」指定した場合

text

1□検索条件 "To: " 2置換後 "To: jkl@hoge.ne.jp\nTo: " 3検索対象 *.txt 4フォルダ C:\temp 5 (サブフォルダも検索) 6 (英大文字小文字を区別しない) 7 (正規表現:bregonig.dll Ver.3.06 with Onigmo 5.15.0) 8 (文字コードセットの自動判別) 9 (一致した行を出力) 10 (ファイル毎最初のみ検索) 11 12 13C:\temp\無題15.txt(2,1) [SJIS]: To: def@hoge.ne.jp ★ ここ 142 個を置換しました。
  • 「ファイル毎最初のみ」指定しない場合

text

1□検索条件 "To: " 2置換後 "To: jkl@hoge.ne.jp\nTo: " 3検索対象 *.txt 4フォルダ C:\temp 5 (サブフォルダも検索) 6 (英大文字小文字を区別しない) 7 (正規表現:bregonig.dll Ver.3.06 with Onigmo 5.15.0) 8 (文字コードセットの自動判別) 9 (一致した行を出力) 10 11 12C:\temp\無題15.txt(2,1) [SJIS]: To: def@hoge.ne.jp ★ ここ 13C:\temp\無題15.txt(3,1) [SJIS]: To: ghi@hoge.ne.jp ★ ここ 142 個を置換しました。

投稿2020/01/31 00:40

編集2020/01/31 00:57
Y.H.

総合スコア7914

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

koromo_t

2020/02/03 13:12

回答ありがとうございました。 To:の最後尾になら挿入できたので、それで良しとすることにしました。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.49%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問