• ベストアンサー

edの使い方

同一ディレクトリ内にある複数のファイル(仮に1.txt, 2.txtとします)に書かれている内容から、abcという文字列をxyzという文字列に一括で置換したいです。UNIX環境なのですが、ラインエディタを使うとするとどのようにすればよいか教えて下さい。

質問者が選んだベストアンサー

  • ベストアンサー
  • sakusaker7
  • ベストアンサー率62% (800/1280)
回答No.3

>awkを勉強する前にもっと簡単だと思われるedを勉強しようと思いました。 正規表現も微妙に違うし、edはエディタなのでやる意味はあるのか 疑問ですけどまあ。 edにファイルを読み込んだとして、 1,$s/abc/xyz/g というコマンドを実行すればお望みの置換ができます。 書き出すのが w、終了がqですからこれを組み合わせた上で シェルスクリプトで実行させるようにすると #!/bin/sh for i in *.txt; do ed $i<<EOS 1,\$s/abc/xyz/g . w q EOS done こんな感じになります。 edコマンドの$をシェルに解釈させないために \ で エスケープしていることに注意してください。

redhat_001
質問者

お礼

出来ました。勉強になりました。有り難うございます。

その他の回答 (2)

回答No.2

> abcという文字列をxyzという文字列に一括で置換 何をしたいのかがイマイチ不明ですが・・・ 1.txt, 2.txt・・・というファイルの文字列を変換しないらな sed を御利用されるのが簡単ではないでしょうか? プログラムが苦にならないなら AWK, Perl でできます。

  • sakusaker7
  • ベストアンサー率62% (800/1280)
回答No.1

edでなきゃいけないんですか?

redhat_001
質問者

補足

awkを勉強する前にもっと簡単だと思われるedを勉強しようと思いました。しかしedのmanを見ても今いち使い方がわからなかったもので。。 というわけで、edの手順を教えて頂けると大変助かります。

関連するQ&A