2009-10-01 15 views
6

テキストファイルの一部の文字をバッチファイルに置き換える方法はありますか?テキストファイルの文字をバッチファイルに置き換える

私はそれを行うコマンドが見つかりませんでした。

+0

置き換えたいものの前と後の例を挙げることができますか? – akf

+0

私は空の文字で '<'のすべての発生をテキストファイルに置き換えたいだけでした。 –

答えて

4

迅速な答えは「いいえ、ありません基本的なWindowsユーティリティで」

しかし、他の回答が示唆したように、あなたがやりたいそこのUNIXポートがたくさんあります。 alookをgnuwin32 packagesにしてください。

EDIT:

さて、私は私の厳格な "ノー" 改訂します。タスクの複雑さやOSによっては、実行する方法があるかもしれません。 Windows 2000以上を使用している場合、cmdは使用できるコマンド拡張を提供します。

基本的な考え方は、FORループを使用して入力ファイルの各行を調べ、SETコマンドで指定された文字列置換を使用して文字を置き換えることです。

私はすぐには解決策がありませんが、あなたはかなりのクールサイトthisからの情報を使用して自分で試してみることができます。 FORループ構文ではhere、文字列置換ではhereとなります。

+0

+1です。 –

+2

ファイルを反復する際の基本的な問題は、 '&'、 '|'や '>'のような特殊文字が含まれていると乱雑になります。 1行に奇数の引用符を入れて、すべてのベットをオフにします。行内に奇数個の引用符がある場合、そのような文字を適切にエスケープする方法を見つけられませんでした。それ以外の場合は簡単ですが乱雑です。 – Joey

+0

ああ、ちょっと別のもの: 'for'は空行をスキップします。あなたが他の解決策を探す必要があるものを含め、ファイルを生き残る必要がある場合。 – Joey

0

GREPのようなコマンドラインプログラムを検索することができます。これは、置換文字列とファイルを取得してスワップするバッチから呼び出すことができます。

+0

Grepは検索/フィルタリングを実行するために使われています...でも、wikipediaでさえ知っています:http://en.wikipedia.org/wiki/Grep – enguerran

+0

実際、sedはそのタスクに特化していますが、FYIではWindows/DOS置き換えを可能にするgrepの亜種。 gnuwin32の場合は – Deverill

0

UNIXのコマンドラインユーティリティ "tr"のDOSポートを使用できます。

無料のDOSポートはfound hereで、私が好きなものの1つは "UXUTL - DOS用のコマンドラインUnixユーティリティの包括的なコレクション"です。

利点は、trだけでなく、非常に便利なコマンドの全部を得ることです。

1

使用はsedのない、または何も文字を変更する言葉 または

cat file|tr "a" "b" > changed.file.name 

を変更するunxutilsをインストールしてから

sed "s/WORD_FROM/WORD_TO/" file_name > changed.file.name 

を行うことができます。

sed -i 's/FROM/TO/g' filename.txt 

sedはさまざまなプラットフォーム向けにhereをダウンロードできます。

1

WIN32 SEDを使用し、公式のgnu sedページを参照してください。それは本当に強力です:

> sed "s/WORD_FROM/WORD_TO/" file_name > changed.file.name 
0

この質問はかなり古いですが、将来の読者はあなただけのテキストを置き換えるための依存関係のない小さなexeファイルをしたい場合、私は​​を使用することをお勧めしていることを知って興味があるかもしれません。

関連する問題