• ベストアンサー
  • 暇なときにでも

サクラエディタのコマンドで正規表現置換したい

サクラエディタ(Ver 2.2.0.1)で日本語文字をすべて全角空白に置換しようと思い、以下のコマンドを実行しました。 ※画面上は改行しているかもしれませんがもちろん1行のコマンドです。 sakura.exe -GREPMODE -GKEY="[^\x{01}-\x{7E}]" -GREPR=" " -GFILE="sample.txt" -GFOLDER="C:\temp" -GOPT=R すると、なぜか各行で最初の日本語しか置換されません。 複数ファイルの処理も想定しているのでメニューではなくコマンドラインでやろうとしています。 実際にサクラエディタでうまく置換できる方はやり方を教えてください。

共感・応援の気持ちを伝えよう!

  • 回答数1
  • 閲覧数1995
  • ありがとう数0

質問者が選んだベストアンサー

  • ベストアンサー
  • 回答No.1

公式HPに2.2.0.1で「Grep置換で最初の文字しか置換できない」 がバグで記述されてますが、これのことでしょうかね。 http://sakura.qp.land.to/?cmd=read&page=History%2F2.2.0.1

共感・感謝の気持ちを伝えよう!

関連するQ&A

  • 正規表現を教えて下さい。

    正規表現を教えて下さい。 1行目の各拡張子を(赤)、2行目の行頭のsakuraを(青)、それ以外を(黄)に色分けする正規表現を教えて頂けないでしょうか。 [.txt;.ini;.cfg; sakura|"D:\Program Files\sakura\sakura.exe" "%P" ] サクラエディタ ver.1.6.50

  • 正規表現の置換で、カンマで区切られた語句を""と改行で分ける方法

    正規表現による置換についてお教えください。 Unixのコマンドで置換するときに、sed コマンドを使うと思います。 今、プログラムのソースコードの中に含まれている語句を取得するために、色々いじろうと思っています。 私が最もお聞きしたいのは、正規表現の書き方であることを、まずご理解ください。 ソースコードの中に、 string headline="語句1,語句2,・・・,語句n-1,語句n"; というように、 string headline= で始まっていて、 その後に " "(ダブルクォーテーションの組)で囲まれた部分が1箇所あり、 その部分に、カンマ(,)で区切られた語句がいくつもあるような行があったとき、 その " "の部分を、 "語句1", "語句2", ・・・ "語句n-1", "語句n" のように置換したいのです。 つまり、語句一つ一つをダブルクォーテーションで包んで、1行に語句が1つになるようにしたいのです。 厳密に言えば、stringとheadlineの間などに、タブや空白がいくつあるかわからないという問題なども考える必要があるかもしれません。 とりあえず私が考えたのは、 s/\(string headline="\)\([^,]\)+,\(";\)/\1\2",改行"\3/g です。 s/置換前の文字列のパターン/置換後の文字列のパターン/g となっています。 置換前のパターンで \( \) で囲まれている部分は、置換後のほうで、\1のように参照できます。 ■■でも、私の書いたものって、語句が繰り返し出現することに対応できていないように思われます。■■ 実際に、置換に改行を含めるには、正規表現をファイルの中に書いて、sedの-fオプションで読み込ませることになると思います。 string headline=" " という形をしていないものは、たとえ、" " の中がカンマで区切られていてもそれを分けません。

  • 正規表現で全角スペースと誤認

    OS:solaris8 perlのver:5.8.6 perlで、”食器洗い乾燥機|0”という文字列に対し、 空白文字(半角スペース、タブ、改行、全角スペース) が含まれているかを検査しているのですが、 空白文字有りとなってしまいます。 恐らく文字コードの問題だと思うのですが、 詳しくないため、解決方法が分からないでいます。 どのようにしたら解決できるでしょうか? require "jcode.pl"; としているので、jcodeのモジュールで 解決できないでしょうか? 文字コードはEUCです。 以下はソースです。 # 空白文字(半角スペース、タブ、改行、全角スペース)が #入力されていないかチェック $data = "食器洗い乾燥機|0"; if ($data =~ /\s|(?:\xA1\xA1)/) { #含まれている場合 } よろしくお願いします。

    • ベストアンサー
    • Perl
  • 正規表現<置き換え>が実行してくれません

    次のようなスクリプトで、改行マーク\nがたくさんある1行データを<BR>に置換しようとしましたが、表示は\nのままです。原因が分かりません。たぶんこの肝心の箇所のスクリプト・エラーだと思いますが、自分で発見できません。どなたかお教え下さい。 print "Content-type: text/html; charset=sjis-jp\n\n"; print "\n"; print "<HTML>\n"; print "<HEAD>\n"; print "<TITLE></TITLE>\n"; print "</HEAD>\n"; print "<BODY>\n"; # 辞書を読む #ファイルの各行を配列に一括して読み込む。 open(IN, "GermJ.txt"); @list = <IN>; close(IN); $max = $#list; for ($i=0; $i<$max; $i++) {$data = @list[$i]; if (index($data, $tango.' /// ')==0) {$data=~ s/ \n/<BR>/g; print "$data\n"; last; } } print "</BODY>\n"; print "</HTML>\n"; __END__

    • ベストアンサー
    • Perl
  • サクラエディタの正規表現での置換

    サクラエディタの正規表現での置換の方法について教えて下さい。 行の末尾が数字で終わらない行の改行コードを削除したいと考えています。 ---------- 元ファイル ---------- 000abc123 777def 456 333ghi789 222jk+ 111 ---------- ---------- 加工後 ---------- 000abc123 777def456 333ghi789 222jk+111 ---------- 「置換前」は『[^0-9]\n』を入力することで検索できましたが、 「置換後」に何を設定すれば良いのかわかりません。(または「検索対象」の設定を変える必要があるのかなど) 例えば置換後に何も設定しないと「777de456」とfが消えてしまうため、”f”を残した上で改行コードを削除したいのですが その方法がわかりません。 よろしくお願いいたします。

  • hp-uxのsedコマンドについて教えてください

    hp-uxのコマンドで困っております。 どなたか知恵をお貸しいただけたらと思います。 あるファイルより条件に合致する特定の文字列の置換を行い別のファイルとして保存したいと考えております。 このときに以下のsedのコマンドを利用しているのですが、一部上手くいかなくて難儀しております。 コマンド(※文字列の前後にわかりやすく<>を付けていますが実際には入力しません) sed "/<文字列(1)>[^0-9]/"s"/<文字列(1)>/<文字列(2)>/"g aaaa.txt > bbbb.txt コマンドの内容 aaaa.txtの中を検索し文字列(1)かつ文字列(1)のすぐ後ろの文字が数字でない場合(例えばIPアドレスで10.xxx.xxx.1というIPアドレスを置換したい場合に10.xxx.xxx.10や10.xxx.xxx.100を含めないようにする場合です)、文字列(1)を文字列(2)に置換しbbbb.txtに保存する。 (※上記コマンドのみだと条件に合致する文字列のたびにbbbb.txtが上書きされるため一番最後の条件に合致する文字列しか置換されませんので、実際にはコマンドのたびにbbbb.txtをaaaa.txtに上書きコピーするステップを入れています) この際、困っておりますのが元ファイルaaaa.txtにある各行の文字列が以下の場合に認識がされず置換が行われない点です。 (1)10.xxx.xxx.1<タブ>xxxxxxxxxの場合(※条件に合致する文字列のすぐ後ろにタブ文字が入っている場合) (2)10.xxx.xxx.1<改行>の場合(※条件に合致する文字列のすぐ後ろが改行となっており同一行にそれ以上文字が存在しない場合) 上記の(1),(2)のような行は置換が行われず、元の値のままとなってしまいます。 これらを解決する方法がありましたらよろしくお願いいたします。

  • UNIXコマンドで連番付ファイルのリネームについて

    いつもOKWaveでお世話になっております。 表題の件ですが、 UNIXのsplitコマンドで分割したファイルに拡張子を付けたく コマンドライン上で分割されたファイルを同時にリネームする方法を探しております ファイル分割 % split -a 3 -d -l 100 sample.txt sample_ ※100行単位で分割ファイルを3桁の数字で連番を付けています 処理結果 sample_000 sample_001 sample_002 sample_003 ・ ・ ・ 上記ファイルに「.txt」を付けたいと考えております 例) sample_000.txt sample_001.txt sample_002.txt sample_003.txt ・ ・ ・ 書き方の問題かと思うのですが、 renameコマンドを使いファイル名を変更しようとするも変化なしとなります % rename sample_* sample_*.txt sample_* 最終的にはコマンドをパイプで繋いで 分割からリネームまで1本の処理で完結したいと考えております。 恐れ入りますが、ご教示のほどよろしくお願いいたします。

  • サクラエディタ 正規表現

    正規表現の書き方をネットで探しましたが、イマイチやりたいことが出来ないので、どなたか実際にかいてもらえませんか。 ・文頭のスペースやタブを除外して、'や--の行を検索する。 ・特定のフォルダを除外してGREPをかける。  例えば、aaa.txtというファイルにあいうえおという文字列が入力されていて、  そのファイルがC:\A、C:\B、C:\Cにあり、C:\Bだけを除外してGREPをかけたい  ※除外するフォルダ名の長さは不特定 ・検索したい単語の開始と終了は決まっていて、間に何文字入ってても(数字もあり)検索する  例えば、単語の開始が あいうえお で、終了が さしすせそ の場合 雑な質問で申し訳ないですが、どなたか回答お願い致します。

  • サクラエディタの正規表現について

    こんにちは。 サクラエディタの正規表現を使った置換について お伺いします。 文字列(タブ)文字列(タブ)文字列(タブ) 文字列(タブ)文字列(タブ)文字列(タブ) 文字列(タブ)文字列(タブ)文字列(タブ)         ・         ・ というファイルがあった場合、 各行の一番最初の文字列だけ残して タブ以降すべて削除したいと思っています。 この場合どのようにしたらよいのか、大変悩んでいます。 お知恵をお借りできましたら幸いです。 よろしくお願いいたします。

  • 正規表現を使用した置換(サクラエディタ)

    正規表現を使用して(7桁の数値)のみを残す置換をしようとしましたが上手くいきません、上手い方法はありませんでしょうか。 (7桁の数値)がなくても改行は残す置換を行いたいです 例 1行:12345(1000000)1145 2行:231(1234567)231(8901234)235 3行:235677433 4行:(1111111)(2222222)333 ↓ 置換 1行:(1000000) 2行:(1234567)(8991234) 3行: 4行:(1111111)(2222222)