
No.1ベストアンサー
- 回答日時:
「Onigsed」を使用したバッチファイルの例を書かせて頂きます。
Onigsedは、テキスト処理をするプログラムです。
以下のページを開き、一番上にある「Onigsed 2009年10月31日バージョン」をクリックし、ファイルをダウンロードします。
■ Onigsed
http://www.kt.rim.or.jp/~kbk/sed/
ダウンロードしたファイルを解凍します。
次に、メモ帳を開きます。
以下の線内の文章をコピー&ペーストします。
--------------------------------------
@echo off
rem ■ 「出力ファイルパス」をセット ■
set 出力ファイルパス=%~dpn1(置換後)%~x1
rem ■ ファイルがドラッグ&ドロップされなければ終了する ■
set DROP=%~a1
if not "%DROP:~0,1%"=="-" exit
rem ■ テキストを置換する ■
onigsed -e "{s/^\(.*[ぁ-んァ-ヶ亜-黑].*\)$/\1≪_日本語行末_≫/gi; s/^\([^ぁ-んァ-ヶ亜-黑]*[a-zA-Z][^ぁ-んァ-ヶ亜-黑]*\)$/≪_英語行頭_≫\1/gi;}" "%~1" |^
onigsed -e ":loop; N; $!b loop; ; s/[\n\r]/≪_改行_≫/gi; " |^
onigsed -e "{ s/≪_日本語行末_≫≪_改行_≫≪_英語行頭_≫/ /gi; s/≪_改行_≫/\n/gi; s/≪_日本語行末_≫//gi; s/≪_英語行頭_≫//gi; }" > "%出力ファイルパス%"
start "" "%出力ファイルパス%"
--------------------------------------
「日英の2行を1行にする.bat」という名前を付けて、任意の場所に保存します。これがバッチファイルです。
出来たバッチファイルを、先程解凍したOnigsedのフォルダ内に移動します。
あとは、テキストファイルを、当該のバッチファイル上にドラッグ&ドロップすれば、置換されてファイル出力されます。
対応ファイルは、テキストファイルのみで、複数個のドラッグ&ドロップには対応していません。
出力ファイルは、元ファイルとは別に出力されるようになっていますが、上書きしたい場合は、「set 出力ファイルパス=%~dpn1(置換後)%~x1」を、「set 出力ファイルパス=%~1」に書き換えてください。
処理後にファイルを開くようになっていますが、開きたくない場合は、「start "" "%出力ファイルパス%"」という記述を削除してください。
プログラマーの方なら、もっとスマートな処理を書けるかと思いますが、自分にはこれが限界です。完璧な処理ではないですが、ある程度の実用は出来るかと思います。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
VB6側からテキストファイルをク...
-
VBSを用いてIPアドレスを取得し...
-
ある文字列を含む行の抽出
-
特定フォルダ内のテキストファ...
-
Excel.VBA テキストファイルを...
-
BCPユーティリティの使用法_...
-
fortranでファイルから数値を読...
-
excelにテキストファイルの指定...
-
ExcelVBAで以下のマクロを作成...
-
コマンドプロンプトのエラーに...
-
大量のフォルダからひとつのフ...
-
コマンドプロンプトの「%1」と...
-
バッチでテキストファイルから...
-
コマンドプロンプトで作成日時...
-
バッチ処理でファイルの中身を...
-
アクセス 壊れた? 「ファイ...
-
Python CSVファイルについて
-
特定フォルダ内のファイルを自...
-
リンクの張り付けかたを教えて...
-
Thunderbirdで社内共有フォルダ...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
ある文字列を含む行の抽出
-
VBAでPowerPointからExcelにデ...
-
特定フォルダ内のテキストファ...
-
BCPユーティリティの使用法_...
-
Excel.VBA テキストファイルを...
-
access vbaでCSVファイルを文...
-
VB6側からテキストファイルをク...
-
VBAで新しい日付順にファイルを...
-
時間短縮のために、テキストフ...
-
fortranでのcsvファイルを出力...
-
複数行の文字列を変数として使...
-
ソースコードの差分がある行番...
-
テキストファイルの行頭に文字...
-
ページレイアウトをHTMLファイ...
-
unicode文字列(日本語)のファイ...
-
複数のCSVの指定行だけを残し、...
-
C言語でのファイルの読み込み方
-
正規表現を使って、日英の2行...
-
VBScriptについて教えてください!
-
VBAで任意のフォルダ内のファイ...
おすすめ情報
丁寧なお返事を頂き感謝です。
しかも大変迅速だったので驚いています。
ありがとうございました。
回答を幾度か読んでみましたが、私には、もっと勉強しないと分からないようです。
私は、検索語を正規表現を用いて \n^[ -~]+ にして探せば、後は置換するだけと考えていたのですが、置換語に [ -~]+ がそのまま反映されてしまい、壁に当たっていました。
正規表現は奥が深いのですね。
頑張ろうと思います。