お知らせ

  • 利用規約を守って投稿してください。また、よくある質問および投稿の手引きも参照してください。
  • メッセージの投稿にはアカウントが必要です。未登録の方は、ユーザ登録ページからアカウントを作成することができます。

#1 2009-01-09 02:51:53

gandexi-yuta
メンバ
登録日: 2009-01-03

ファイル中に含まれる文字列を置き換える方法

はじめまして。
Linuxを使い始めてまだ間もなく、コマンドについて勉強しているのですが、
以下のようにするコマンドが分かりません。

あるディレクトリ(及びその下に入れ子になったディレクトリ)の下にある、
ファイル名に拡張子.txtを持つファイル全てについて、
各ファイル中に含まれる文字列THIS-FILEを全て
そのファイルのファイル名で置き換える。

find,sed,basenameコマンドを組み合わせて使うということは分かるのですが、
その組み合わせ方がよく分かりません。

方法が分かる方が居られましたら教えていただきたいです。
よろしくお願いします。

オフライン

 

#2 2009-01-09 11:41:08

mizuno
管理者
From: Kyoto
登録日: 2007-02-28

Re: ファイル中に含まれる文字列を置き換える方法

コード:

for n in $(find . -name '*.txt')
do
  sed -i -e "s/THIS-FILE/$(basename ${n})/g" ${n}
done

とかでどうですか?

オフライン

 

Board footer

Powered by FluxBB