人力検索はてな
モバイル版を表示しています。PC版はこちら
i-mobile

フォルダ内のサブディレクトリないに存在するテキストファイルも含め、複数テキストファイルの文字列を一括で置き換えたい。
そういうのを実現するプログラムを教えてください。
OSは MacOSX(10.4) か emacs(22) を使用しているので、それで動くものをご紹介ください。
この方法、いつも忘れてイライラしながら検索する。
今回だけは皆さんが検索してください!

●質問者: KotoriKoToriko
●カテゴリ:コンピュータ ウェブ制作
✍キーワード:Emacs MacOSX OS イライラ テキスト
○ 状態 :終了
└ 回答数 : 3/3件

▽最新の回答へ

1 ● ヨネちゃん
●20ポイント

Macromedia Dreamweaver MX にはその機能が備わっています。ので、いつもDreamweaverを使って置換しています。

現在のバージョンでもおそらく可能であると思われます。

http://livedocs.macromedia.com/fireworks/8_jp/fwhelp/wwhelp/wwhi...

◎質問者からの返答

すみません、今すぐなんとかしたいので、フリーソフトでお願いします。

僕の言葉足らずです、ごめんなさい。


2 ● n_koji72
●20ポイント ベストアンサー

http://www.atmarkit.co.jp/flinux/rensai/theory08/theory08a.html

http://x68000.q-e-d.net/~68user/unix/pickup?sed

bashのスクリプト+sedで


ターミナルを起動し

トップディレクトリで以下のコマンドを順に入力

(行頭の$や>はプロンプトなので入力しない)


$ for i in $(find ./* -print)

> do

> cp $i ${i}_tmp

> cat ${i}_tmp | sed 's/置換前文字列/置換後文字列/g' > $i

> rm ${i}_tmp

> done

失敗が怖い場合はrmの行を入力しなければ

置換前の内容が(ファイル名)_tmpというファイルに残っています。

テストしてから使ってください。

繰り返し使うのでしたらこの内容のスクリプトを用意し

改良して使うと良いでしょう。

◎質問者からの返答

うへー、思ったより実現はめんどくさそうですね。

なんかこの作業をするたびに sed を使ったりするんですが、またしばらく使わなくなって、忘れるみたいな繰り返しなんですよね。


3 ● n_koji72
●40ポイント

http://www.sixnine.net/roadside/find.html

すみません。

先程の回答を一部修正します。

一行目を


$ for i in $(find . -type f -print)


にして下さい。これをしないと

サブディレクトリもcpとcatの対象になり,rmでは消せないので,

エラーメッセージが出てゴミが残ります。

◎質問者からの返答

上とあわせてお答えありがとうございます。

複数業にわたる置き換えやらなんかも、何も考えずに出来たらなーとか思ったりします。

しかしあれですね、 xyzzy だと楽なのにな。

「xyzzy」と「あふ」はたまに使いたくなります。

関連質問


●質問をもっと探す●



0.人力検索はてなトップ
8.このページを友達に紹介
9.このページの先頭へ
対応機種一覧
お問い合わせ
ヘルプ/お知らせ
ログイン
無料ユーザー登録
はてなトップ