文字コードが異なるファイルは、まとめてNo.34597
re さん 15/11/18 10:12
 
UTF-8はgrep検索できるのですが、Shift-jisファイルを一緒にgrep検索できない気が
するのですが…

[ ]
RE:34597 文字コードが異なるファイルは、No.34600
秀丸担当 さん 15/11/18 11:27
 

grepのダイアログの「エンコードの種類」を「自動判定」にしておくと、ファイ
ルの内容を解析して、UTF-8やShift-JISなどを判別し、同時にgrepできます。

ほとんどの場合は自動判定でできると思いますが、稀にテキストファイル中に全
角文字などの判定できる材料が少なかったり、混在していたりすると、判定は期
待通りではない可能性もあります。
確実にするとしたら、やはりあらかじめ指定したエンコードの種類で2回に分け
てgrepしていただくしかないと思います。

[ ]
RE:34600 文字コードが異なるファイルは、No.34605
re さん 15/11/18 20:23
 
参考までにお伺いしたいのですが、「秀丸エディタ」はテキストエディタなので、テ
キスト以外の(例えば画像系)ファイルは処理しないほうが無難でしょうか?

■質問背景
・いつも「*.*」でグレップ置換しています
・今回たまためテキスト以外の画像系のファイルがヒットしてしまい、それが開けず
alert表示になりました
・強制実行ボタンはファイルが壊れたら困るので押しませんでした
・自動指定を取りやめ、shift-jisとかを個別指定してみましたが、同じ状況でした
※画像本体部分ではないパス部分だったので可能なら置換したかったのですが…

■考え方は下記のような感じでしょうか?
・秀丸はテキストエディタなので、テキスト以外の(例えば画像系)ファイルはサポー
ト外
・グレップ検索で使用する分には構わないが、置換は避けた方が良い?

■画像のエンコードは?
・それとも、適切なエンコード指定をすれば、画像も開けるのでしょうか?
・色々試してみたけれども、うまくいかなかったのですが…

[ ]
RE:34605 文字コードが異なるファイルは、No.34608
秀丸担当 さん 15/11/19 09:34
 

grepは画像などテキストファイル以外のものがヒットすると、文字化けした状態
で解釈したり、grep置換では文字化けしたものを無理矢理書き換えることになる
ので、避けたほうがいいです。
ファイルを壊すことになってしまいます。

例えば拡張子.txtのテキストファイルを対象とする場合は「*.txt」と書きます。
複数の拡張子(例えば.txtと.ini)の場合は「*.txt;*.ini」という感じでセミ
コロンで区切って書きます。

画像ファイルなどのバイナリファイルを避けるための設定もあります。
[その他]→[動作環境]の左下の「上級者向け設定」をONにして、
[その他]→[動作環境]→[検索]→[grepの動作]のところで設定できます。
「バイナリファイルと思わしきファイルを除外」は、テキストファイルではない
と推測されるものを自動的に除外します。
「指定した拡張子を除外」を指定しておくと、特定の拡張子を除外することがで
きます。例えば「*.jpg」を除外に設定しておくと、「*.*」でgrepしても、jpg
は対象とならないようになります。

設定場所はバージョンによって違ったり、最近追加された設定もあるので、もし
最新版でない場合は最新版にされることをお勧めします。
上記の設定はV8.54の設定です。

[ ]
RE:34608 文字コードが異なるファイルは、No.34615
re さん 15/11/20 21:16
 
詳細説明ありがとうございました!

>[その他]→[動作環境]→[検索]→[grepの動作]のところで設定できます
・「長い年月&毎日」秀丸を使用していますが、いつも新たな発見にびっくりします
・こんな設定項目があったんですね
・参考になりましたー

[ ]